![]() |
Capturar excepciones desde pl/sql
Hola gente:
tengo un problema cuando quiero capturar excepciones creadas por mí en un trigger de una tabla de la base de datos. Desde delphi yo hago lo siguiente pero no me funciona: procedure TPUDMCambiarParamOperacion.actualizar; var num : Integer; begin try begin if CDSOperaciones.State in dsEditModes then CDSOperaciones.Post; if CDSOperaciones.ChangeCount > 0 then num := CDSOperaciones.ApplyUpdates(0); end except Application.MessageBox('mensaje excepción', 'Mensaje', MB_YESNOCANCEL + MB_ICONINFORMATION); end; end; Yo quiero poder capturar el mensaje de la excepción que me da el trigger y mostrarlo por pantalla. El trigger es un before_update. Desde ya cualquier respuesta muchas gracias. Mariano. |
No se pueden poner excepciones en TRIGGER
Si no mal recuerdo, en ORACLE no puedes manejar excepciones dentro de los TRIGERS....a menos que me equivoque..hace tiempo que no programo en ORACLE....mas bien tengo mala memoria.
Saludos, cacuna. |
Solución...
Hola: les cuento por si les interesa la solución que encontré... También aclaro que lo estoy probando con una base de datos firebird...
El clientDataSet tiene un evento que es onReconcileError, en dicho evento se captura la excepción y se muestra por pantalla de la siguiente forma (es solo una forma, también vi después que se puede capturar en dataSetProvider la excepción que viene de la base de datos): procedure TPUDMCambiarParamOperacion.CDSOperacionesReconcileError( DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction); var s:string; begin s:=e.Message; ShowMessage(s); end; Obviamente si existe un error (por lo que va a dar la excepción en este caso) ejecuta este evento..... Saludos. Mariano. |
La franja horaria es GMT +2. Ahora son las 02:05:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi