FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Disparador no funciona en Internet
Hola amigos del Club, en mi país ya son las dos de la mañana y realmente no encuentro solución a mi problema que es el siguiente:
Tengo un programa hecho en c++ builder, este se conecta a una base de datos Interbase SMP 2009. El programa posee un form con una tabla en la que se actualiza automáticamente (es una ventana padre y uno puede crear ventanas hijas), a travez de un IBEvents, y en la base de datos hay un disparador que se dispara luego de una inserción (usa el nombre de "NEWREG"). Entonces en el evento OnEventAlert del IBEvents esta el siguiente código: Código:
for (int i = MDIChildCount - 1; i >= 0; i--) { if (EventName == "NEWREG") { TIBDataSet *DATASET1 = static_cast<TIBDataSet*> (MDIChildren[i]->FindComponent("IBDataSet1")); if (DATASET1->SelectSQL->Text!="") { DATASET1->Active = false; DATASET1->Active = true; } } En una LAN o red interna todo de lujo, pero cuando se intenta en Internet nunca llega la alerta así que nunca se actualiza el listado. Por favor, ayúdenme como siempre. Gracias. (creo que se me nota la preocupación ) Última edición por Casimiro Notevi fecha: 15-07-2012 a las 11:42:32. |
#2
|
||||
|
||||
El problema realmente tiene que ver con la infraestructura, específicamente con el firewall, firebird usa cierto puerto para los eventos, si el firewall cliente o servidor bloquean ese puerto la comunicación no se puede lograr, creo que debes buscar por acá, puesto no puedo darte mas información, como que puerto es, o como se configura, en fin, se que ya había leído al respecto, pero no recuerdo donde.
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#3
|
||||
|
||||
Tampoco recuerdo en qué hilo se habló del tema, fue hace poco, pero no lo encuentro, de todas formas echa un vistazo a este documento, ahí se explica.
|
#4
|
||||
|
||||
Muy agradecido
Cita:
|
#5
|
||||
|
||||
Muchas gracias
Cita:
|
#6
|
||||
|
||||
Les comento...
Hola de nuevo.
Resulta que vi tu documento estimado Casimiro; empero no dice la solución explicita sino más bien me dice cual es mi problema, seguiré buscando y posteo. |
#7
|
||||
|
||||
Encontré algo
Amigos,
¿es este hilo al que se referían? http://www.clubdelphi.com/foros/show...et%2C+firewall Comento luego, voy a probar jeje |
#8
|
||||
|
||||
Equivalente en InterBase
Hola,
Leyendo encontré que lo que hay que hacer es fijar el puerto auxiliar denominado en firebird "RemoteAuxPort" pero no encuentro esto en Interbase, por favor; alguien me puede decir como configurar de forma equivalente este puerto en Interbase, por favor? Gracias amigos. |
#9
|
||||
|
||||
Para Firebird es el archivo firebird.conf, supongo que para interbase es interbase.config xD, se encuentra en la carpeta de instalación.
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#10
|
||||
|
||||
jaja probe antes de postear eso
Gracias amigo, pero eso ya lo intente y nada que ver. en cambio encontre Ibconfig, no se si será pero no encuentro nada que tenga el nombre de puerto auxiliar... debe ser otro o que se yo
|
#11
|
||||
|
||||
Tendrás que mirar la documentación de interbase, no te queda otra.
|
#12
|
||||
|
||||
te soy honesto amigo mío
Cita:
Para serte honesto no se ni porque sigo con interbase Sigo en mi busqueda y cuando encuentre la respuesta posteo, si llegan a saber algo me cuentan amigos . Gracias y luego posteo |
#13
|
||||
|
||||
Consejo
Estimados amigos, necesito un consejo:
La parte de actualizarse automáticamente realmente es necesaria para mí, y ya re leí toda la documentación de Interbase y no logro con toda franqueza lograr redireccionar los eventos de los trigger. Por ello, necesito un consejo: ¿que tan fácil sería por la razón anterior, migrar una base de datos de apenas 8 mb (32000 reg aprox) a Firebird? que tantas cosas debo cambiar? o sería fácil? Tan fácil como sólo hacer la migración, crear los usuarios, estructuras, relaciones y migrar los datos y listo? no debo cambiar nada en mi aplicación? pregunto porque obviamente los componentes IB express se utilizan en ambas bases de datos pero para ser honesto nunca he usado firebird, no se si es fácil instalar el cliente o como es la administración del servidor... Me pueden dar consejo? Gracias amigos. |
#14
|
||||
|
||||
- Primero haz una buena copia de seguridad, por si acaso.
- Haces un backup transportable con interbase: gbak -b -v -t -user sysdba -password masterkey basedatos.gdb basedatos.gbk - Desinstalas interbase y borras gds32.dll que estará en el directorio windows\system32 - Instalas firebird - Recuperas el backup transportable: gbak -c -v -p 8192 -user sysdba -password masterkey basedatos.gbk basedatos.fdb - Conectas y prueba. Si no haces uso de "algo extraño" entonces serán totalmente compatibles. |
#15
|
||||
|
||||
Muchas gracias
Ok, entendido Casimiro (buen fast-tutorial).
Y con eso de "usos extraños", cuando somos novatos hacemos unas cosas que ni te digo . Voy a hacer lo que me dices. Agradezco tu atención . Te comento mis resultados. |
#16
|
|||
|
|||
Hola, lo que ha comentado Casimiro no creo que funcione. Los archivos de backup entre interbase y Firebird son incompatibles.
Para poder hacer la migración te aconsejo lo siguiente: 1. Extraer el metadata de la base de datos de interbase. Lo puedes hacer con ibconsole o con otras herramientas. Yo lo he realizado con ibexpert. 2. Instalar Firebird en otro puerto distinto al 3050, y ejecutar el script con el metadata para crear una base de datos vacía en Firebird. Dependiendo de la calidad del "metadata" puede que no requiera modificaciones. Firebird es mas estricto en el uso del lenguaje DML, por lo que puede que tengas que modificar cosas. 3. Una vez que tengas la base de datos vacía en Firebird, utiliza una herramienta como ibpump y vuelca los datos. Es importante para este paso que tengas instalados los 2 motores. 4. Si todo ha ido bien, prueba tu aplicación, ya que como he comentado antes, Firebird es mas estricto y puede que tengas que cambiar algo. 5. Si todo ha ido bien, des instala interbase y cambia Firebird al puerto 3050. Con la librería gds32.dll de Firebird, puedes acceder desde ibpump y desde tu aplicación a ambos motores, cosa que no puede ser con la de interbase. Un saludo, jesus
__________________
Un saludo, Jesus García |
#17
|
||||
|
||||
¿Desde qué versión son incompatibles?, creo recordar que hasta la IB7.5 y FB1.5 eran totalmente compatibles.
|
#18
|
||||
|
||||
Precaución ante todo
Lo que voy a hacer es realizar pruebas en mi casa, en una pc aparte y comento.
|
#19
|
|||
|
|||
Puede que sean compatibles interbase 6 y Firebird 1, ya que no hubo cambios en el ODS, aunque no lo he probado. Interbase 7.x ya no es compatible con ninguna versión de Firebird. Este si lo he probado.
__________________
Un saludo, Jesus García |
#20
|
||||
|
||||
Por lo que veo está usando Interbase SMP 2009, por lo que no es compatible directamente.
Tendrá que extraer el metadata, adaptarlo en lo que sea necesario para firebird y luego copiar los datos con ibpump (por ejemplo). No es complicado tampoco, aunque no es tan cómodo como hacer un backup/restore. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trigger o disparador en delphi-interbase | Diego827 | Firebird e Interbase | 21 | 08-01-2012 05:26:28 |
Controlar un Disparador al momento de cancelar o eliminar | JoanKa | Varios | 1 | 30-06-2006 18:00:36 |
Porque funciona solo en Internet Explorer??? | danytorres | HTML, Javascript y otros | 6 | 21-10-2005 18:23:01 |
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 |
|