Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

Re: Unterschiedliches Verhalten bei Transaktionen

  Alt 15. Sep 2008, 13:41
Hallo,

SQL-Server 2005:

Habe folgendes probiert:
SQL-Code:
/*
create table test
(
  a smalldatetime,
  b smallint,
  c VarChar(20)
)

create unique index c on test (c);

*/


begin transaction
delete from test
commit transaction

begin transaction

insert into test (a,b,c) values ('01.01.1999',32677,'test');
insert into test (a,b,c) values ('01.01.2099',32677,'test2000');
insert into test (a,b,c) values ('01.01.1999',32677,'test');
insert into test (a,b,c) values ('01.01.1999',326770,'test');
insert into test (a,b,c) values ('01.01.1999',32677,'test1');

commit transaction

select * from test

1999-01-01 00:00:00   32677   test
1999-01-01 00:00:00   32677   test1
Ergebnis sollte stimmen, bei Dir auch, dann ist's nicht die Datenbank.

Kannst Du an der Exception erkennen, wer sie genau wirft? Poste sie ggfls. mal hier.

Die ADOConnection hat ein "Fehler"-Array, gib das mal aus, eventuell gibt es da mehr Infos:

Delphi-Quellcode:
Var
    i : Integer;
begin
  for i := 0 to ADOConnection.Errors.Count - 1 do begin
    Writeln(ADOConnection.Errors.Item[i].Number);
    Writeln(ADOConnection.Errors.Item[i].Source);
    Writeln(ADOConnection.Errors.Item[i].Description);
    Writeln(ADOConnection.Errors.Item[i].SQLState);
    Writeln(ADOConnection.Errors.Item[i].NativeError);
  end;
end;
Ausgehend von Deiner Beschreibung ist für mich nicht zu erkennen, wo Du im Quelltext das Commit machst, ist sichergestellt, dass es auch bei jeder Ausnahme ausgeführt wird?

Stephan
  Mit Zitat antworten Zitat