![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Trigger o disparador en delphi-interbase
Hola amigos del club, tengo una consultita.
No soy muy bueno en base de datos; lo unico que he hecho son tablas simples y consultas a las mismas ya que hasta este año me toca en la universidad base de datos. Les comento mi problema: Tengo un programa pequeño y sencillo que posee un DBGrid conectado a un DataSource-> ibdataset->IBDataBase. Este dbgird muestra nada mas una serie de 10 datos, contyenidos en una tabla de Interbase. hasta aqui todo Ok. Anteriormente habia posteado un hilo donde preguntaba como hacer que3 la tabla se mostrara en "tiempo real" y claro esta que me refiero a que cuando se ingresara un nuevo registro inmediatamente la aplicacion mostrara el valor. Me dieron la solucion: un disparador o trigger. Pero resulta que no pude hacerlo porque no se como y ya busque en la web y no encuentro nada que yo entienda con mi bajo nivel de conocimientos. Ahora por favor, necesitaria que me indicaran como crear un trigger que al insertar un nuevo registro alertara de alguna forma a la aplicacion "cliente" y esta cerrara y habriera el dataset y asi refrescar el DBGrid. Gracias amigos y disculpen las molestias. Enviado desde mi IPad 6G ( ![]() |
#2
|
||||
|
||||
Haz una búsqueda por post_event.
|
#3
|
||||
|
||||
Eres increible!!!
Hola Casimiro, gracias por responder ahora busco!
Un saludo, |
#4
|
||||
|
||||
Consultita
Estimado Casimiro, tengo este codigo:
Pero me da el error: Código:
Dynamic SQL Error. SQL error code = -206. Column unknown. NEW_CLIENTE. SQL Code: -206 IB Error Number: 335544569 ![]() |
#5
|
||||
|
||||
Hola
Y que es NEW_CLIENTE, esta en la tabla?. Saludos
__________________
Siempre Novato |
#6
|
||||
|
||||
Gracias
Hola Caral, te comento:
La tabla es asi:
Este es el link del documento que haye pero no me funciona. http://www.intitec.com/varios/Firebi...de_eventos.pdf |
#7
|
||||
|
||||
Unos detallles mas...
SOlamente para comentarles: utilizo C++builder XE e Interbase SMP 2009.
Saludos, |
#8
|
||||
|
||||
Hola
No he hecho de estos gatitos nunca, asi que no entiendo muy bien como funcionan. El concepto es relativamente sencillo. Se crea un disparador de evento y un gatito para la el evento. La pregunta es: Segun lo que entiendo lo que pretendes es que lo datos que insertas se vean de inmediato en el dbgrid. Si es asi, por que usar un gatito, es imperativo ?. Saludos
__________________
Siempre Novato |
#9
|
||||
|
||||
Gracias por responder Caral
Hola Caral; el asunto es así:
Imagina que tienes un servidor, un programa cliente para visualizar datos y otro programa por medio del cual una persona ingresa datos a la base de datos. Si la persona ingresa datos al servidor por medio del programa de ingreso los programas clientes deben de recibir una alerta para actualizar sus datos. Ese es el concepto, pero nada me funciona y ya me empiezo a sentir idiota |
#10
|
||||
|
||||
Hola
Yo tengo 6 ordenadores conectados a un servidor con firebird. No uso nada de eso y no he tenido nunca problemas. Como de esto no se lo que hago es simplemente una consulta a la tabla antes de hacer algun cambio, asi, si alguien ha modificado algo lo puedo solucionar antes. Tambien uso vistas, que son mas sencillas que los Tiggers, por lo menos para mi. Saludos
__________________
Siempre Novato |
#11
|
||||
|
||||
jaja la estaba arruinando
Hola amigos, gracias por su tiempo.
El error que cometia era este:
En el Tutorial aparecia con comillas dobles y bueno grave error pueden verificarlo: http://www.intitec.com/varios/Firebi...de_eventos.pdf Gracias por su tiempo y disculpen, la verdad siempre me ayuda muchísimo la gente de este foro. |
#12
|
||||
|
||||
Hola
Me alegro, ahora la pregunta: Que hace el tigger?, envia un mensage despues de insertado ?. Saludos
__________________
Siempre Novato |
#13
|
||||
|
||||
Puede ser
Cita:
Bueno la verdad nunca he usado vistas; pero lo que sucede es esto, cuando los datos son sumamente necesarios para la toma de decisiones deben ser en tiempo real. Si se coloca un timer que tenga como labor abrir y cerrar cada cierto tiempo los dataset para actualizar el DBGrid estarias cada minuto por ejemplo estarias abusando un poco del trafico de red, ademas: recibirias los datos un minuto despues de que el usuario de ingreso inserto los datos. Entonces para evitar esto, le dejo la tarea al servidor para que este le diga al programa "Ya me ingresaron datos" y el programa al recibir el evento habra y cierre el dichoso dataset y actualice en tiempo real. Espero haberme dado a entender ya que me "cuesta" (y mucho ![]() Gracias nuevamente y un saludo a todos. |
#14
|
||||
|
||||
Exacto
Cita:
![]() Un saludo amigo (soy muuy novato). |
#15
|
||||
|
||||
Hola
Si, estoy claro en esto. Pero como siempre digo, es lo mismo de una que de otra manera. Si tienes que indicar con un if (como indica el ejemplo que pusiste) cada vez que se hace algun cambio y ademas recurrir al tigger, es lo mismo que hacer una sentencia sql. Bueno, me alegro que lo solucionaras, eso es lo importante. Saludos
__________________
Siempre Novato |
#16
|
||||
|
||||
Hola
Estoy tratando de entender la necesidad de un trigger en este caso y sigo sin entenderlo. La unica que se me ocurre es en el caso de un solo form (general). Esto pensando en que se tenga la tabla o dataset activo siempre. Si se trata de varios forms, no le veo utilidad. Se que genera un evento con el componente IBEvents, pero que ?, de que sirve ?, me puede actualizar el dataset, pero siempre y cuando este activo, de lo contrario o enviara un error o no hara nada. No lo entiendo. Me quedo con mi humilde IBQuery y Sql. ![]() Saludos
__________________
Siempre Novato |
#17
|
||||
|
||||
Vamos a ver...
Te comento, yo no uso mucho los ibquery, de hecho nunca los he utilizado porque utilizo el componente ibdataset el cual me provee de un selectsql y demás funciones.
Ahora bien: imaginemos que tu haces una aplicación con un ibquery>ibtransaction>ibdatabase etc. y bueno tu programa es un control de existencias de productos en stock de un almacén de repuestos para aeronaves de guerra rusa (de los MiG o que se yo ![]() Espero haberme dado a entender porque como dije anteriormente no es mi fuerte ![]() Un saludo. Enviado desde mi IPad 3G |
#18
|
||||
|
||||
Es que un programa que trabaja de esa forma está mal planteado. No se tiene una ventana abierta con el stock, ahí todo el rato, eso es algo inútil, sino que cuando se selecciona el artículo es cuando se muestra el stock de ese momento. Cierto que también puede irse en ese momento al baño y cuando regrese ya lo han vendido en otro terminal, pero al aceptar la línea es cuando debería de comprobar el stock de ese momento.
Lo de las dobles comillas en el evento... no me había fijado, tendré que corregirlo ![]() |
#19
|
||||
|
||||
Ups!!!
Cita:
Ahora con lo del documento: ups! lo siento, no sabia que eras el autor pero bueno en fin todos ganamos algo en este hilo ![]() ![]() |
#20
|
||||
|
||||
No, en este caso no soy el autor, sólo recopilé la información de Erika Martínez (la autora) y lo publiqué en formato pdf.
Ya está cambiado, con comillas simples. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear Trigger Interbase - Ayuda | BlueSteel | Firebird e Interbase | 6 | 27-11-2007 22:08:59 |
Controlar un Disparador al momento de cancelar o eliminar | JoanKa | Varios | 1 | 30-06-2006 18:00:36 |
Trigger en interbase | afarenas | Firebird e Interbase | 2 | 04-12-2004 15:35:04 |
problema con disparador FB | marrullas | Firebird e Interbase | 2 | 03-08-2004 23:16:32 |
Crear un Disparador Desde la Aplicacion | DANY | Firebird e Interbase | 0 | 12-11-2003 15:30:38 |
![]() |
|