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