Announcement

Collapse
No announcement yet.

Datenrefresh nach StoredProcedure

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

  • Datenrefresh nach StoredProcedure

    Hallo,
    ich versuche, nach dem Einfügen eines Datensatzes (mit TIB_StoredProc) auf
    den eingefügten Datensatz zuzugreifen, indem ich mit einer TIB_Table auf
    die Daten zugreife. Der Datensatz wird aber nicht gefunden, auch wenn
    ich 60 Sekunden warte. In der Schleife mache ich eine Table.close, table.open und table.refresh. Wann kann ich auf meinen eingefügten Datensatz zugreifen ? Ich nehme an, daß das Problem allgemeiner ist und nicht nur bei IB-Objekte.
    Gruß Michael M.

  • #2
    Hallo Michael,

    der Grund dafür liegt in dem Transactionsverhalten des Interbase-Servers. Der eingefügte Datensatz ist für alle Abfragen erst "erreichbar", wenn die Transaction bestätigt wurde.

    Delphi sorgt selbstständig für den Start und das Ende einer Transaction. Dadurch kann es jedoch zu unerwünschten Nebeneffekten kommen (siehe Dein Problem). Die Abhilfe ist jedoch sehr einfach, indem man selber die Transactionssteuerung übernimmt.

    Quellcode:

    <b><pre>
    begin
    if not(IBTransaction1.InTransaction) then IBTransaction.StartTransaction;
    IBStoredProc_Insert_Test.ExecProc;
    IBTransaction.commit;
    IBTransaction.StartTransaction;
    IBTable...
    end;
    </pre></b>
    Weitere Info's kann ich Dir auch per e-mail schicken.

    Tschüß

    Torste

    Comment

    Working...
    X