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 28-09-2004
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question conexion por red con firebird

He mandado mensajes y veo que ya no me responden, porfavor les pido su ayuda, me quiero conectar por medio de la red desde una maquina cliente a la que hace las veces de servidor, utilizando firebird 1.5.

que tengo que instalar en las maquinas cliente, para poder acceder al archivo de base de datos que esta en el servidor, utilizo los componentes IBTransaction y IBDatabases de delphi 5, y para crear las tabla uso el IBExpert.
Ya copie el archivo fbclient.dll en la maquina cliente en la carpeta system32 y nada.
Gracias!
atte noe
Responder Con Cita
  #2  
Antiguo 28-09-2004
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola,
no dices que te ocurre, ni si te da algún error de conexión...

¿Qué valor (ruta de la BD) pones en la propiedad DatabaseName del componente TIBDataBase?
Responder Con Cita
  #3  
Antiguo 28-09-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

La forma correcta de hacerlo, es instalando el cliente de Firebird. Es decir utilizar el instalador de Firebird, y durante la instalación indicar que se quiere instalar el cliente (y no el servidor como se hace por defecto).

Aunque te puede funcionar copiando solo los archivos fbclient.dll y gds32.dll, si no haces la instalación completa, te encontrarás con detalles como el que no tengas las descripciones de los errores que puedan saltar, ...

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 28-09-2004
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question como refrescar los cambios

Ya lo hice buscando en los foros antiguos el de Giniromero:
Lo que hice fue, hacer doble click sobre mi transacción y ponerma en "ReadCommitted"

Después, todas mis tablas las vinculé con los siguientes dos procedures en eventos:

*Events --> AfterPost


procedure TForm1.TableAfterPost(DataSet: TDataSet);
begin
IBTransCenta.CommitRetaining;

end;


*Events --> AfterCancel


procedure TFrmMainCenta.TableAfterCancel(DataSet: TDataSet);
begin
IBTransCenta.RollbackRetaining;

end;

pero como hago para refrescar los cambios que se estan haciendotanto en el cliente como en el servidor, en paradox era con refresh y actualizaba la pantalla con los cambios que se habian hecho en otras maquinas, como lo hago con los componentes IBTransaction y IBDatabase, utilizo un IBTable para enlazarme a las tablas.

gracias!
Responder Con Cita
  #5  
Antiguo 28-09-2004
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Smile perdon!

Se me habia olvidado comentarles que ya me pude conectar desde la maquina cliente al servidor creando una conexion a una unidad de red es decir:
H:\Aplicacion\datos esto lo tengo en la propiedad Databasename del componente IBDataBase.
hay una mejor forma.?
gracias
ha tambien les agradecere me puedan ayudar en mi pregunta anterior de este mismo hilo
gracias!
Responder Con Cita
  #6  
Antiguo 28-09-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Debes quitar esa unidad de Red. La base de datos del Servidor no tiene que estar compartida de ninguna forma. Solo debe poder acceder a ella el Servidor. (Probablemente tienes instalado un Servidor de Interbase en el Cliente, y está abriendo directamente la base de datos, lo que solo puede llevar a que se corrompa rapidamente la misma).

La forma correcta de acceder a la base de datos desde el cliente, es mediante una cadena de este tipo :

Nombre_Servidor:Ruta_local_en_el_servidor\Nombre_Base_de_Datos

Es decir, algo como :

SERVER200:C:\Datos\Clientes.gdb

Respecto a la pregunta sobre como ver los datos introducidos desde otras estaciones, simplemente se hace con un Refresh sobre el IBTable (igual que hacias con Paradox). Aunque tendrás que cambiar tus CommitRetaining por Commit, puesto que el CommitRetaining no finaliza realmente la transacción.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 28-09-2004
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question

Perdon Marc. El programa que rengo en mi maquina cliente es el firebird 1.5 pero cuando lo instale, no me dio ninguna opcion para instalarlo como cliente; y en mi maquina cliente en donde le doy la ruta que dices para que apunte a donde esta la base de datos que esta en el servidor. Pregunto, mi programa debe estar en la maquina cliente tambien, es decir el puro ejecutable o que cosa debo hacer, la verdad ya me estoy enredando y me gustaria que me lo explicaras un poco mejor, te agradezco tu ayuda, ya que veo que sabes bastante.


Gracias
Responder Con Cita
  #8  
Antiguo 28-09-2004
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question

Ah, utilizo para conectarme un IBDatabase, un IBTransaction, y un IBTable.
como tiene que estar configurados estos para que funcionen en red.?
gracias.
Es que ya hice lo que me dijiste Marc, pero nadaahora esta peor porque ni siquiera puedo entrar al sistema que esta en el servidor.
gracias
Responder Con Cita
  #9  
Antiguo 28-09-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Vayamos por partes :

Cita:
Empezado por noe
Perdon Marc. El programa que rengo en mi maquina cliente es el firebird 1.5 pero cuando lo instale, no me dio ninguna opcion para instalarlo como cliente;
En ese momento no la habrás visto, así que seguramente lo mejor es que desinstales Firebird, y lo vuelvas a instalar. Verás como te va a preguntar el tipo de instalación a realizar (Completa, solo Cliente, ...).

NOTA : Utiliza el instalador oficial de Firebird 1.5, es decir el que puedes encontrar aquí. http://prdownloads.sourceforge.net/f...4481-Win32.exe

Cita:
Empezado por noe
y en mi maquina cliente en donde le doy la ruta que dices para que apunte a donde esta la base de datos que esta en el servidor.
En la propiedad Databasename de tu objeto IBDatabase.

Cita:
Empezado por noe
Pregunto, mi programa debe estar en la maquina cliente tambien, es decir el puro ejecutable o que cosa debo hacer,
No es necesario, puedes poner el ejecutable en el Servidor, en un recurso compartido, y lanzarlo desde el cliente. Puesto que solo precisas tener el Cliente de Firebird instalado.

Cita:
Empezado por noe
Gracias
Un placer.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #10  
Antiguo 13-03-2008
ozegarra ozegarra is offline
Miembro
 
Registrado: nov 2007
Ubicación: Lima - Peru
Posts: 35
Poder: 0
ozegarra Va por buen camino
Hola Guillormarc, veo que tienes bastante experiencia y conocimiento de Delphi y Firebird. Agradeceria me puedas ayudar.

Estoy tratando de poner mi aplicativo en clientes, teniendo como servidor mi pc.

Para conectarme a la bd desde delphi utilizo un adoconnection al cual le asigno la ruta donde esta la bd en la cadena de conexion de esta manera:

ADOConnection1.ConnectionString :='Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=SERVIDOR:C:\Clientes.gdb'

Si instalo la aplicacion en mi pc (Servidor) no hay ningun problema pero al querer ejecutar en la pc cliente me da este error:

"Unable to complete request to host SERVIDOR.
Failed to establish a connection.
Se produjo un error durante el intento de conexion ya que la parte conectada no respondio adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexion establecida ya que el host conectado no ha podido responder."

¿Podrias ayudarme a solucionar este problema?, te lo agradeceria muchisimo.

Saludos
Oscar
Responder Con Cita
  #11  
Antiguo 14-03-2008
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 21
sur-se Va por buen camino
Hola.
Añade una línea en el fichero hosts de esa máquina (si es windows XP está en c:\windows\system32\drivers\etc) en el que se indique la ip de la máquina "SERVIDOR".
Eso es suficiente para que encuentre la máquina "SERVIDOR" y conecte con ella.
A parte de eso, comprueba que tu firewall (si lo tienes) no esté bloqueando el puerto 3050 / tcp.
Un saludo.
Responder Con Cita
  #12  
Antiguo 14-03-2008
ozegarra ozegarra is offline
Miembro
 
Registrado: nov 2007
Ubicación: Lima - Peru
Posts: 35
Poder: 0
ozegarra Va por buen camino
gracias sur-se.

Esto es lo que contiene ese fichero

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Éste es un ejemplo de archivo HOSTS usado por Microsoft TCP/IP para Windows.
#
# Este archivo contiene las asignaciones de las direcciones IP a los nombres de
# host. Cada entrada debe permanecer en una línea individual. La dirección IP
# debe ponerse en la primera columna, seguida del nombre de host correspondiente.
# La dirección IP y el nombre de host deben separarse con al menos un espacio.
#
#
# También pueden insertarse comentarios (como éste) en líneas individuales
# o a continuación del nombre de equipo indicándolos con el símbolo "#"
#
# Por ejemplo:
#
# 102.54.94.97 rhino.acme.com # servidor origen
# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost


siguiendo lo que me recomendaste, agregue al final esto:
192.168.0.10 SERVIDOR

pero me sigue saliendo el mismo mensaje. Te agradeceria si eso es a lo que te referias o estoy haciendo algo mal.

Muchas gracias nuevamente.

Saludos
Oscar
Responder Con Cita
  #13  
Antiguo 17-03-2008
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 21
sur-se Va por buen camino
Hola. Efectivamente, siempre suponiendo que el fichero hosts que has modificado es el de la máquina cliente.
El esquema que tendrás es una máquina servidora ejecutando el firebird server, que se llama SERVIDOR y con esa ip. Se supone que en esa máquina, si tiene firewall, está abierto el puerto 3050.
La máquina cliente debe tener modificado el fichero hosts para añadir la línea que te indiqué.
Si todo es así, y has comprobado que el servicio Firebird se está ejecutando en la máquina SERVIDOR, debe funcionarte sin problemas.

Sólo una cosa. Si usas eventos de firebird, deberás abrir también el puerto que hayas asociado a dichos eventos, el cual es configurable.

Si sigue sin funcionar, prueba primero ha hacer un ping desde la máquina cliente a la servidora para ver si la encuentra. A ver si el problema es de conexión de red.

Un saludo.
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


La franja horaria es GMT +2. Ahora son las 09:18:17.


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