Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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;
				}
		}
El código anterior lo que hace es que si por lo menos hay una ventana hija abierta, esta actualizará sus datos al cerrar y abrir el dataset.

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.
Responder Con Cita
  #2  
Antiguo 15-07-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 15-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #4  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Muy agradecido

Cita:
Empezado por mightydragonlor Ver Mensaje
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.
Gracias por tu respuesta compañero, tienes toda la razón; debe ser un puerto. Como siempre, me pase de listo y se me olvido que estoy incluso haciendo NAT!!! y obviamente tengo que habilitar un puerto para que se emita la debida "Batiseñal"... toda la razón compañero!
Responder Con Cita
  #5  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Muchas gracias

Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Ok, ahora veo el enlace Casimiro; cuando logre resolver posteo la solución para que quede registrada de nuevo!!!
Responder Con Cita
  #6  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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
Responder Con Cita
  #8  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Wink 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.
Responder Con Cita
  #9  
Antiguo 15-07-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
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.
Responder Con Cita
  #10  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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
Responder Con Cita
  #11  
Antiguo 15-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tendrás que mirar la documentación de interbase, no te queda otra.
Responder Con Cita
  #12  
Antiguo 15-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Red face te soy honesto amigo mío

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Tendrás que mirar la documentación de interbase, no te queda otra.
Ya me mate buscando la forma de modificar o por lo menos encontrar ese puerto del diablo y no lo encuentro .

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
Responder Con Cita
  #13  
Antiguo 16-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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.
Responder Con Cita
  #14  
Antiguo 16-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
- 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.
Responder Con Cita
  #15  
Antiguo 16-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
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.
Responder Con Cita
  #16  
Antiguo 16-07-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
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
Responder Con Cita
  #17  
Antiguo 16-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por cointec Ver Mensaje
Hola, lo que ha comentado Casimiro no creo que funcione. Los archivos de backup entre interbase y Firebird son incompatibles.
¿Desde qué versión son incompatibles?, creo recordar que hasta la IB7.5 y FB1.5 eran totalmente compatibles.
Responder Con Cita
  #18  
Antiguo 17-07-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Precaución ante todo

Lo que voy a hacer es realizar pruebas en mi casa, en una pc aparte y comento.
Responder Con Cita
  #19  
Antiguo 18-07-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
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
Responder Con Cita
  #20  
Antiguo 18-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 17:25:40.


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
Copyright 1996-2007 Club Delphi