VB6 ADO-Verbindung - Wie Sie Überprüfen, wenn Sie in der Transaktion?
Gibt es eine Möglichkeit zu sagen, indem nur der ADODB.Connection-Objekt, ob oder nicht es wird aktuell an einer Transaktion beteiligt?
Ich würde lieben im Stande zu sein, zu testen, diese auf das verbinden-Objekt selbst, ohne sich auf die Führung eines boolean-neben aktualisiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den BeginTrans Methode kann verwendet werden, als eine Funktion, gibt die Verschachtelungsebene von Transaktionen. Wenn Sie eine Eigenschaft erstellen, zu speichern, dies können Sie überprüfen, wo immer Sie brauchen, um zu sehen, ob es größer als 0 ist. Wenn Sie einen commit oder rollback, müssen Sie verringern Sie die Immobilie selbst.
Könnte man auch anpassen, den Rückgabewert zu arbeiten, in einer Funktion, liefert True/False, wenn das level - > 1. Ich weiß nicht, wie diese als gut, aber es würde in etwa so Aussehen (ohne Fehlerbehandlung)
ADODB.Connection
! Ich habe schon mit dem Gedanken getragen zu minimieren von änderungen an den bestehenden report Extraktion von code, so dass Benutzer Berichte ausführen können über eine WLAN-Verbindung (die in unserem Fall geht das durch eine benutzerdefinierte RPC-server).Wenn Sie die Verbindung zu einem Microsoft SQL Server und können sich darauf verlassen, reagieren schnell genug (d.h. es ist nicht auf der anderen Seite des Planeten) führen Sie die Abfrage:
Wie es aussieht, können Sie die ADO-Zustand. http://msdn.microsoft.com/en-us/library/ms675068%28v=VS.85%29.aspx
Wahrscheinlich wissen Sie bereits dieses andere Teil, aber ich poste es trotzdem.
Dies erklärt, wie die Transaktionen arbeiten mit ADO in VB.
http://support.microsoft.com/kb/198024
Kann man nicht, es sei denn, Sie verfolgen ihn selbst. Das connection-Objekt, nicht eine Eigenschaft, die den Umgang mit der Transaktion Staat. Du musst Ihr proc-setzen Sie ein flag in einer anderen Tabelle/Einstellungen Bereich, wenn Sie HABEN, es zu haben (was problematisch sein kann, wenn unbehandelte Fehler auftreten, und das Zustands-flag bekommt "stecken" mit einem ungültigen status, Sie müssen sich mit einem gültigen "timeout" oder "override" zu ignorieren/zu töten/überschreiben Sie die vorherigen).