Einzelnen Beitrag anzeigen

automatix

Registriert seit: 1. Mai 2008
Ort: Remscheid
39 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Problem beim Erzeugen einer Tabelle in einer Transaktion

  Alt 11. Dez 2008, 09:40
Hallo!
Ist dies wirklich so bei Firebird? Ich habe hier leider kein Firebird im Zugriff aber bei DB2 und Oracle funktioniert z. B. folgendes mit Delphi 2006:
Delphi-Quellcode:
var
  ta: TTransactionDesc;
begin
  try
    SQLConnection1.Connected := True;
    try
      ta.TransactionID := 1;
      ta.GlobalID := 0;
      ta.IsolationLevel := xilREADCOMMITTED;
      SQLConnection1.StartTransaction(ta);
      SQLQuery1.SQL.Text := 'create table TEMP.TEST (id integer)';
      SQLQuery1.ExecSQL;
      SQLQuery1.SQL.Text := 'insert into TEMP.TEST (ID) values (1)';
      SQLQuery1.ExecSQL;
      SQLConnection1.Commit(ta);
    except
      SQLConnection1.Rollback(ta);
      raise;
    end;
  finally
    SQLConnection1.Connected := False;
  end;
Was nach meinem Verständnis einer Transaktion auch vollkommen korrekt ist.
Denn eigentlich sollte es so sein, dass man innerhalb einer Transaktion auch alle Änderungen (insert, update, delete, create, drop etc.) der eigenen Tansaktion auch sehen sollte.
Gibt es da bei Firebird vielleicht Konfigurationsoptionen? Oder anderen IsolationLevel xilDIRTYREAD probieren?

Ansonsten Tabellen erzeugen, Daten einfügen. Sollte dabei etwas schief gehen wieder ein drop table.

Grüße
  Mit Zitat antworten Zitat