Delphi - Anticiparme al Borrado de un registro

 
Vista:

Anticiparme al Borrado de un registro

Publicado por Irreal (69 intervenciones) el 10/11/2006 12:13:49
Necesito que cuando alguién quiera borrar un registro, hacer una serie de comprobaciones antes de borrar el registro; el problema es que si decido no permitir el borrado no encuentro la manera de abortar la instrucción.

Para las altas y modificaciones lo resuelvo con un Query.Cancel , pero no soy capaz de hallar la misma operativa para el borrar.

He logrado una solución poco profesional y es que que al borrar lance una función propia y en esta lanzar el borrado si fuera necesario, pero como he dicho me parece poco profesional.

Gracias!
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:Anticiparme al Borrado de un registro

Publicado por BigLuis (713 intervenciones) el 10/11/2006 12:23:52
Si el borrado lo haces con una instruccion SQL "DELETE FROM......" lo tienes chungo, es decir, una vez lanzado el execsql no hay nada que hacer a no ser que grabes un trigger en la BD si los acepta.
Si el borrado lo haces desde un Dataset con el procedimiento Delete, estas salvado ya que puedes capturar en el mismo Dataset el evento BeforeDelete y ahí puedes hacer las comprobaciones que quieras y si no se cumplen con la instruccion Abort deshaces toda la operacion.
Otra solucion es trabajar con transacciones, si las acepra la BD, y entre Starttransaccion o Begintrans (cada BD tiene su propia manera de llamar al inicio de la transaccion) y Commit haces las comprobaciones; si se cumplen haces el commit y si no al rollback.
Solo son ideas.
Suerte e insisto en que en las preguntas se mencione el tipo de BD que se esta usando o se quiere usar.
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:Anticiparme al Borrado de un registro

Publicado por Irreal (69 intervenciones) el 15/11/2006 11:21:45
Gracias Funcionó!
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