Ke tal amigo? agradezco la ayuda que me diste. Pero aun tengo un problema, no se porque motivo un insert con clave duplicada no genera error al correr el adoquery. En el analizador de consulta da el error pero delphi no lo detecta. y me serviria que me devuelva un error si algo no anduvo bien en la transaccion.
Asi quedo la transaccion que corro.
Código SQL
[-]
BEGIN TRAN
insert into croperatoria (idoperatoria,fecha) values ('000500000012','2006-12-13');
if @@error <>0 begin rollback tran; RETURN; end;
insert into cuentas (nro_cuenta,lim_cred,cred_utiliz, estado, est_aval,fec_alta) values ('00025001',250,0,'Habilitado','','2006/12/13')
if @@error <>0 begin rollback tran; RETURN; end;
...
...
...
commit tran
Usé tambien el RAISERROR para que me devuelva un mensaje de error como me explicaste antes, pero no hay forma de que delphi lo detecte o yo no se como hacer para detectarlo. ASi es el codigo en delphi.
Código Delphi
[-]
fmain.adoq.SQL.Clear;
fmain.adoq.SQL.LoadFromFile(files);
ok:=true;
estado:='OK';
try
res:=fmain.ADOq.ExecSQL;
except
estado:='FALLO';
ok:=false;
end;
Si me ayudas de nuevo te lo agradeceria.
Saludos