2017-04-05 5 views
-1

Ich verwende WIX, um ein Installationsprogramm zu erstellen. Jetzt möchte ich feststellen, ob meine Datenbank von einer anderen Sitzung verbunden ist, falls ja, einen Fehler auslösen.So überprüfen Sie die SQL Server-Verbindung zu einer Datenbank in WIX

Kann mir jemand zeigen, wie man das mit WIX macht? Ich weiß, es ist einfach mit C#, aber ich weiß nicht, wie man es mit WIX macht, vielen Dank im Voraus!

Antwort

0

Ich löste es mit benutzerdefinierten Aktion. Unten ist ein Stück Code, hoffe es hilft anderen.

[CustomAction] 
public static ActionResult DoCheck(Session ssion) 
{ 
    ... 
    if (CheckDBInUse(...)) 
    { 
     ... 
     session["DBINUSE"] = "Y"; // Set flag 
     ... 
    } 
} 

private static bool CheckDBInUse(...) 
{ 
    // SELECT host_process_id FROM SYS.DM_EXEC_SESSIONS WHERE DATABASE_ID = DB_ID('{0}')" 
    // do check 
} 

In WXS Datei:

<control ...> 
<publish Event="SpawnDialgo" Value="DBInUseDlg">DBINUSE = "Y"</publish> 
</control> 

<Dialog Id="DBInuseDlg" ....> 
    <control>.... 
</Dialog> 
Verwandte Themen