FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tratando de exprimir los eventos de interbase
Hola a todos\as:
Estoy realizando una aplicancion con interbase y quiero usar los eventos para refrescar la informacion en los equipos conectados al servidor. He conseguido recuperar eventos con nombres predefinidos, pero siguiendo la ayuda y algunos textos de internet puedo generar eventos segun el valor de un campo de un registro. Eso ha sido facil con campos de texto, pero a mi me seria mucho mas útil si el evento que lanzo es una fecha, porque asi solo actualizaria en los terminales que estubiesen monstrando informacion de ese dia. He probado con Post_event new.fecha y haciendo un cast en el trigger post_event cast(new.fecha as varchar(10)). tambien he creado una variable en el trigger y primero le metia la fecha con el cast y despues ejecutaba post_event variable. Para capturar el evento he registrado en el IBEvent la fecha en los dos formatos (primero dia y despues mes y al reves) y nada. Estoy tratando de hacer algo imposible? Y rizando mas el rizo seria posible generar nombres de eventos como "I03/02/2004", "M03/02/2004" o "B03/02/2004" segun sea modificar insertar o borrar?... me vendria de perlas para minimizar el trafico en mi red. Un saludo y muchas gracias por leerme
__________________
Un trozo de chocolate te da la energia necesaria para ir a por otro trozo de chocolate (by ELENA) |
#2
|
||||
|
||||
El formato que te devuelve el cast(undate as VarChar(10)) es 'yyyy-mm-dd' y creo que no debieras tener ningun problema para postear un evento construido en una variable... aunque no lo he probado, simplemente verifique que compile...
digamos Código:
set autoddl off; set term ^ ; create trigger pruebas for colb_cuota active after update AS declare variable event_nm VarChar(50); Begin select 'M'||cast(new.fecha_max_pago as VarChar(10)) from rdb$database into :event_nm; post_event :event_nm; end; ^ set term ; ^ commit; set autoddl on;
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Funciona
Lo dicho funciona a las mil maravillas. No habia compuesto bien la cadena usaba algo asi como 'M' + '-' + .... a parte de poner mal el formato de la fecha.
Millones de gracias por ayudarme a acceder lo imprescindible a la base de datos.
__________________
Un trozo de chocolate te da la energia necesaria para ir a por otro trozo de chocolate (by ELENA) |
#4
|
||||
|
||||
Decidí continuar este hilo porque mi problema está muy relacionado.
1. Creo una tabla 2. Creo un trigger para esa tabla, digamos: Código:
CREATE TRIGGER "Debug_NewRecord" FOR "Debug" AFTER INSERT AS BEGIN POST_EVENT 'DNEW'; END Código:
Memo1.Lines.Add(EventName); 5. Luego inserto un registro desde IBConsole, desde mi propia aplicación con un TIBQuery (ejecutando el método ExecSQL), desde mi propia aplicación con un TIBTable (hasta le hago Post manual). 6. He intentado haciendo AutoRegister verdadero y poniendo Register a verdadero. Después de todo esto: No pasa nada. No obtengo resultados. Alguien sabe qué puede estar pasando? Uso InterBase 7.1 y Delphi 7.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
#5
|
|||
|
|||
Commit
Tienes que hacer un Commit despues del Post.
|
#6
|
||||
|
||||
Desafortunadamente no estoy trabajando en este momento con los eventos.. pero probaré y entonces les contaré qué pasó. Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
#7
|
||||
|
||||
Si puedes ver el ejemplo de "SURVEYS" que biene con ibObjects creo que es uan de las mejores soluciones para la notificacion de los cambios a los clientes.
Ya los componentes de bienen dotado con las propiedades necesarias para usar este funcionalidad |
|
|
|