PDA

Ver la Versión Completa : Mostrar mensaje desde trigger


Axel_Tech
11-05-2011, 17:26:05
Hola a todos, estoy buscando la forma de mostrar un mensaje al insertar un registro en una tabla. No me sirven las excepciones desde un trigger pues no se trataría de ningún error. Si no estoy equivocado lanzar una excepción haría un rollback de la inserción del registro, y yo quiero que se inserte correctamente.
El mensaje sería meramente informativo (que no se olvide el usuario de rellenar otro dato de otra tabla). Los registros se insertan a mano en una tabla de Access que está vinculada a la de Firebird 2.5, no se usa formulario ni nada.

¿Alguien conoce alguna manera de hacer esto desde Firebird? Gracias anticipadas.

Un saludo.

ecfisa
11-05-2011, 18:05:57
Hola.

Creo que el uso de eventos (http://www.firebird.com.mx/modules/AMS/article.php?storyid=35) te va a servir para este caso.


Un saludo.

Axel_Tech
11-05-2011, 18:30:10
Gracias por contestar ecfisa, pero en mi caso no se utiliza Delphi por lo que no puedo usar el componente IBEvents y su evento OnEventAlert. Necesito que se muestre el mensaje al meter un registro a pelo en una tabla vinculada de Access.

Voy a buscar más info sobre los eventos en Firebird a ver si encuentro algo.

Casimiro Notevi
11-05-2011, 19:30:19
¿Y entonces cómo guardas los registros en firebird?, ¿a mano?

Axel_Tech
12-05-2011, 08:47:15
¿Y entonces cómo guardas los registros en firebird?, ¿a mano?
Casimiro es la misma tabla vinculada por ODBC, es decir que cuando insertas un registro en Access en realidad se está insertando en Firebird.

Casimiro Notevi
12-05-2011, 09:10:24
¿Entonces lo haces a través de algún dataset, se supone?, pues aprovecha su evento newrecord o afterpost para emitir el mensaje.

Axel_Tech
12-05-2011, 09:37:33
Creo que no me he explicado bien. No se utiliza ningún programa en Delphi para insertar el nuevo registro (por lo que no puedo utilizar ni DataSet, ni IBEvents, ni nada). Lo que hace el usuario es abrir el archivo de Access (.mdb), abrir la tabla vinculada por OBDC y añadir un nuevo registro con sus correspondientes campos. Pues yo lo que quiero es que deje insertar ese registro pero que también salga un mensaje.

Sé que puedo hacerlo desde código VBA (http://es.wikipedia.org/wiki/Visual_Basic_for_Applications), pero estoy buscando la forma (si se puede) de enviarlo desde Firebird. Una excepción desde un trigger no me vale porque cancelaría el insert del nuevo registro.

Axel_Tech
16-05-2011, 10:17:20
Bueno pues por si a alguien le interesa, al final no pude resolverlo desde Firebird :( para no cambiar la costumbre del usuario utilicé un formulario en Access mediante el formato "Vista de hoja de datos", en el que se muestra la información en forma de tabla, y en el evento Form_AfterInsert controlo lo del mensaje.

Casimiro Notevi
16-05-2011, 10:22:12
Es que firebird es un sistema de gestión de bases de datos, por lo que no puede ni debe interactuar con el usuario.

rastafarey
18-05-2011, 02:15:21
Que confusion tan grande este que se quiere hacer el como mesclar chicha con mango. Un sistema gestor de base de dato interactuando con el usuario. las plicaciones interactual con el SGBD no el SGBD con la aplicacion. Como te habian dicho anteriormente la opcion que tienes es capturar los eventos y para eso hay que echar codigo, por que intentar hacer las cosas magicamente no se puedo.

Kipow
09-06-2011, 23:04:08
En mis inicios con Firebird yo lo hice con una UDF. y me funciono muy bien en su momento.