Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   try-except - grandes problemas (https://www.clubdelphi.com/foros/showthread.php?t=44657)

pmfras 12-06-2007 02:45:37

try-except - grandes problemas
 
si bien he visto que este es un tema tratado, vuelvo a el porque no he encontrado una solucion a mi problema, uso delphi7 firebird y dbexpres

tengo dos tablas : articulos y rubros, donde articulo tiene un campo FK con rubros, cuando quiero borrar un rubro que ha sido usado en articulos, me dispara un error pero el except no me lo detecta, me lo deja borrar aunque si salgo y entro en realidad no se borro. el tema que no me mostro el cartel. vuelvo a decir cuando hago el ApplyUpdates(0) me da un error donde me indica sobre el FK

hago

with ClientDataSet1 do begin
try
Delete
ApplyUpdates(0);
except
ShowMessage('error');
end;
end;

espero sus respuesta, si alguien puede reproducirlo o bien quiere que le mande un .rar con el ej me da su correo, preciso solucionar esto a la mayor brevedad.

AzidRain 12-06-2007 02:53:33

Lo que mencionas es lo que se esperaria que pasara, ya que si te fijas, el applyupdates esta dentro del try de manera que si hay una excepcion aparentemente si hace el borrado, que es donde se genera la exepcion, pero como no se ejecuta el applyupdates no pasa nada.

Lo correcto:
Código Delphi [-]
Try
  delete;
  ApplyUpdates;
except
  CancelUpdates;
end;

De manera que si hay un error se cancela todo.
Ojo, el dataset debe tener activado el CachedUpdates, ya que si no, esto de Apply/Cancel updates no funciona


La franja horaria es GMT +2. Ahora son las 04:07:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi