Announcement

Collapse
No announcement yet.

ADOConnection beenden...wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ADOConnection beenden...wie?

    Hallo,

    ich brauche ganz dringend eure Hilfe. Ich verwende in meinem Delphi-Programm ADO-Komponente in Verbindung mit Interbase. Bisher gabs auch keine Probleme. aber wenn ich das Programm nun beenden möchte erhalte ich immer die Fehlermeldung, dass die Verbindung nicht inmitten einer Transaction beendet werden kann. Auch wenn gar keine Transaction activ ist.
    Was soll ich nur tun ? Ich muss in ein paar Tagen meine Diplomarbeit abgeben, und nun das.

    Gruß Elke

  • #2
    Hallo Elke,

    wahrscheinlich hat sich doch noch eine Transaction "versteckt", die nicht mit CommitTrans bzw. RollbackTrans aufghoben wurde. Was liefert den InTransaction zu dem Zeitpunkt? Ich würde zum Testen einen Button aufs Form packen und dort mal auf InTransaction testen und mit AdoConnection.Close versuchen die Connection zu beenden. Erweitern kannst du das ganze indem du nacheinander deine sämtlichen ADODatasets Closed und erst ganz zum Schluß die ADOConnection. Dann müßte sich der Übeltäter eigentlich finden lassen.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      Danke für Deinen Tipp. Ich hab das Problem nun gefunden. Komischerweise lag es daran, dass ich es mit den Rollback Befehlen zu gut gemeint habe. "Sicherheitshalber" hatte ich nämlich bei all meinen Formularen beim Schließen eine Rollback Transaction aufgerufen, weil ich dachte, dass so die Transaction auf jedenfall beendet werden würde, falls noch eine offen sei. Damit habe ich aber scheinbar genau das gegenteil erreicht. Jetzt, ohne die Rollback Befehle funktioniert es wieder. Also darf man wohl nur einen Rollback Befehl aufrufen, wenn man auch eine Transaktion gestartet hat(Wieder was dazu gelernt).

      Gruß Elk

      Comment


      • #4
        Hallo Elke,

        du kannst dein "SicherheitsRollback" ja bedingen: if ADOConnection.InTransaction then ADOConnection.RollbackTrans; Oder du fragst den user per Messagebox ob er commiten oder rollbacken will.

        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X