Delphi - como manejos los errores durante una transaccion

 
Vista:

como manejos los errores durante una transaccion

Publicado por Misael (51 intervenciones) el 27/04/2003 05:05:02
Como puedo manejar los errores que ocurren durante una transaccion en una base de datos, utilizando el commitrans y rollbacktrans del componente adoconection, ya que lo he estado utilizado en la elaboracion de unas aplicaciones de mantenimiento que estoy haciendo, y cuando ocurre un error , se queda con el error:
voy a anexar el codigo que estoy utilizando , para que vean que es lo anda mal en el procedimiento que estoy utilizando:

with adoconnection do
Begin
Try
if intransaction then Begintrans;
with adotbcliente do
Begin
insert;
fieldbyname('Id').value:=EditId.text;
fieldbyname('Nombrecompleto').value:=EditFullname.text;
fieldbybname('Fecha').value:=EditFecha.text;
post;
end;
Commitrans;
Except
on E: Exception do
Begin
Showmessage(E.message);
Rollbacktrans;
end
end;

end


end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como manejos los errores durante una transaccio

Publicado por BigLuis (463 intervenciones) el 27/04/2003 10:05:26
No entiendo que quieres decir "se queda con el error:"......De todas formas al principio de la rutina cuando pones
if intransaction then Begintrans;
lo que haces es iniciar una nueva transaccion si ADOConnection estaba en transaccion por lo que tienes dos en marcha, pero si NO ESTABA en transaccion NO INICIAS UNA NUEVA y probablemente al hacer un Commit o Rollback te dara un error.
Creo que lo correcto sería
If NOT ADOConnection.InTransacction then ...BeginTrans;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como manejos los errores durante una transaccio

Publicado por Misael (51 intervenciones) el 28/04/2003 15:16:07
con lo que se queda con el error.. me refiero es , que estoy desarrollando una forma de mantenimiento de inventario, y en el procedimiento de guardar y actualizar los datos tengo el procedimiento habia escrito anteriormente , para controlar los posibles errores, utilizando el adoconnection para accesar a una base de datos en Access2000, pero cuando ocurre un error en la entrada el lo detecta, y me hace el rollbacktrans, y cuando proceso a arreglar el campo en la entrada que encontro mal, por ejemplo: precio tipo currency, y habia digitado un string, y me desplego valid field , pero cuando volvi a intentar guardar, se me quedaba desplegando un mensaje que enviame Access2000, de puede ser que se cree un campo duplicado, por eso es que me refiero a que se queda el error ,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar