PDA

Ver la Versión Completa : Mensaje a las terminales


fedelphi
07-06-2007, 16:49:00
Hola foro, necesito que al llegar a un valor determinado un campo de una tabla se envie un mensaje a las terminales y esta tabla quede bloqueada hasta una orden para seguir trabajando sobre ella. Por ejemplo la tabla se llama stock, cuando el campo de alguno de los registros llega a cero se envia un mensaje a todas las terminales 'el producto xxx se esta reponiendo', luego una vez repuesto se desbloquea y se puede seguir normalmente. No se si sera un delirio o muy trabajoso o refacil, pero no tengo idea de como buscarlo o hacerlo.
Estoy trabajando con firebird 1.5 y delphi7

Gracias
Fede

jhonny
07-06-2007, 17:06:20
Bueno, supongo que si buscas información (Aquí mismo en Clubdelphi hay información al respecto) sobre el Post_Event de FireBird (Incluso en la cara oculta de Delphi 4 habla sobre el tema también), te servirá.

fedelphi
08-06-2007, 02:14:47
Gracias jhonny por la respuesta, busque en el foro y coloque en datamodule un TIBEvents, su propiedad registered a true, el database con el nombre del TIBdatabase y en events le defini un nombre que es el que llamo desde un trigger en firebird, pero al compilar me da el error
exception class EIBClienterror with message 'database name is missing'
y luego otro error que dice
exception class EReaderror Error reading IBEventosPrueba.registered:database name is missing
pero al nombre de la base lo tengo definido en IBEventosPrueba.database.
Me pueden dar una pista?
Fede

jhonny
08-06-2007, 15:45:39
Si vas a usar un TIBEvents este deberá estar amarrado por su propiedad Database a un TIBDatabase, pero si lo quieres conectar a un TDatabase deberás usar un TIBEventAlerter. En todo caso ¿En que momento se genera ese error?, ¿Al momento de abrir la aplicación?, ¿Al ejecutar alguna acción por medio de un botón?... ¿En que momento?

fedelphi
08-06-2007, 15:46:42
Lo he resuelto de la siguiente manera, La propiedad IBEvents1.registered la puse en false y en el evento oncreate del datamodule hice IBEvents1.RegisterEvents antes del open al database y todo lo demas.
Fede

jhonny
08-06-2007, 15:48:43
Lo he resuelto de la siguiente manera, La propiedad IBEvents1.registered la puse en false y en el evento oncreate del datamodule hice IBEvents1.RegisterEvents antes del open al database y todo lo demas.
Fede

Interesante... Gracias. :)