Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Mostrar mensaje desde trigger (https://www.clubdelphi.com/foros/showthread.php?t=73707)

Axel_Tech 11-05-2011 17:26:05

Mostrar mensaje desde trigger
 
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 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

Cita:

Empezado por Casimiro Notevi (Mensaje 399714)
¿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, 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

resp
 
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.


La franja horaria es GMT +2. Ahora son las 15:34:39.

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