Hallo,
jeder hat mal angefangen,
also nicht immer gleich losschreien
Zitat:
jetzt bekomme ich immer wieder die Meldung Transaction ist aktiv
Die Meldung ist doch aussagekräftig, oder ?
Irgendwo wird die Transaktion doch nicht geschlossen
Dein Code
Delphi-Quellcode:
procedure TDM.sSql(
Sql :
String);
begin
IBTransaction1.StartTransaction;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Text :=
Sql;
IBSQL1.ExecQuery;
IBTransaction1.Commit;
end;
Mein Code:
Delphi-Quellcode:
procedure TDM.sSql(
Sql :
String);
begin
IBTransaction1.StartTransaction;
try
try
IBSQL1.SQL.Clear;
IBSQL1.SQL.Text :=
Sql;
IBSQL1.ExecQuery;
except
IBTransaction1.RollBack;
end;
finally
if IBTransaction1.InTransaction
then
begin
IBTransaction1.Commit;
end;
end;
end;
Das
begin/end beim
Commit erlaubt es übrigens,
einen Breakpoint zu setzen (bei der Fehlersuche ganz hilfreich)
Nutze als try/except, try/finally wie ich.
Eine letzte Sache, die DataBases/Transaktionen sollten nicht im Object-Inspector
geöffnet/aktiv gesetzt werden.
Heiko