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 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Como trabajar una DB en red?

Buenos Dias amigos.
Estoy intentando leer una base de datos que esta en otro equipo en mi red de trabajo. No me he podido conectar y no se porque.
Supuestamente solamente es invocar el path de la base de datos y ya, pero no me funciona. Como debe ser la configuracion entonces?
Debe ser local, remota, que es eso de la direccion isc4.gdb?
Debo reintalar el servicio del firebird?
Ayudenme por favor.... estoy en un apuro.
Gracias!
Responder Con Cita
  #2  
Antiguo 27-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Me duele decirlo, pero, creo yo que no estaría demás que especificaras unas cuantas cosas, conviene a saber, la herramienta que estás usando (¿Delphi, C++ Builder, otra?), y su versión. Tampoco estará demás que expliques cuanto más detalladamente mejor cómo estás tratando de conectar: si puede ser incluye el código fuente que puedas considerar oportuno.

En fin, que me parece a mí que si estás en un apuro bien podías molestarte (si es molestia) en describir cuanto más mejor tu problema, puesto que si no se perderá mucho tiempo solamente en averiguar todo el abanico de datos que podrías desde ya proporcionar. A continuación se verá qué puede hacerse por ti, que ya sabes de otras ocasiones que por intentarlo no quedará.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Hola Dec, mira la situacion es la siguiente:

Tengo una aplicacion que escribe en una base de datos local, hasta ahí no hay ningun problema.
Pero al cambiarle el path de la base de datos me sale el error " EIBInterbase Error with message operating system directive Create file failed Acceso denegado". Estoy usando Builder.
Mi pregunta es : cuando la base de datos es aqui en el mismo equipo funciona perfecto. Pero cuando la intento leer de otro equipo la misma base de datos, me sale ese error. Cual debe ser la configuracion del Firebird? Debo hacer desde el principio la DB para decirle que va a ser leida remotamente?
ya esta corriendo el servicio pero ya no se que hacer....
Gracias por tu ayuda.
Responder Con Cita
  #4  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Se me escapaba un detalle importante...

En el equipo donde está la bese de datos me sale el siguiente error:

Missing configuration file C:|Archivos de programa\firebird\firebird_1_5\aliases.conf
Tal vez esa sea la clave, pero no la he podido descifrar...
Gracias.
Responder Con Cita
  #5  
Antiguo 27-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Aquí estoy yo tratando de ayudarte con algo que no conozco ni medio mal siquiera... en fin. Se me ocurre que otros lo harían (o lo harán) me... aparte. Se me ocurre que refieras aquí mismo la ruta de la base de datos a que te estás tratando de conectar, más que nada por ver si esta sigue un "patrón" correcto, puesto que creo que has de incluir antes de la misma la dirección IP de la máquina en que esté la base de datos, y eso para empezar...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
lo que estoy haciendo es compartir la carpeta de la base de datos en la red,
y asi ahorrarme la IP. Yo creo que la conexión está bien porque sino no sacaría el error en la otra máquina. Lo que falla creo que es la configuracion del servicio.
Tambien he intentado abrir la DB desde el Firebird manager, y saca el mismo error. El codigo que utilizo es el siguiente:

IBDatabase1->DatabaseName=OpenDialog1->FileName;
IBDatabase1->Connected=true;
IBTransaction1->DefaultDatabase= IBDatabase1;
IBTransaction1->Active=true;
IBTable1->Transaction=IBTransaction1;
IBTable1->Database=IBDatabase1;
IBTable1->TableName="PACIENTES";
IBTable1->Active=true;
DataSource1->DataSet=IBTable1;
DBGrid1->DataSource=DataSource1;

Y funciona si la base de datos esta ubicada aquí en el mismo equipo.

Gracias por tu buena disposición para ayudarme, soy un novato en este tema de las bases de datos.
Responder Con Cita
  #7  
Antiguo 27-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En principio al ser remota:
- Tendrás que instalar Firebird SQL Server (como servicio o como aplicación, según quieras) yo tengo instalado este: Firebird-1.5.0.4288_RC9_Win32.exe creo que ya anda la 2.0 por ahí.

- La carpeta donde resida la BBDD deberá estar compartida en el servidor, con acceso de escritura.

- Cuidado con los Firewalls (cortafuegos) que corten el puerto usado por Firebird.

- En tu programa, tendrás que dar doble clic sobre el IBdatabase, y ahí especificar que la conexión es "remote" indicando los parámetros.

- Si estas usando Interbase que viene con delphi, ten en cuenta que solo tienes licencias para 3 usuarios concurrentes. Si van a ser más de 3 usuarios, te recomiendo, por ejemplo, los Mercury

No sé si se me escapa algo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Sabes que puerto utiliza el FireBird?
y otra pregunta, es necesario bajar el Firebird SQL server?
Como son los parámetros en la configuracion de la DB?
En Server va la IP? Que es SQL rol? y como se indica el path?
Muchas gracias por tu colaboración.
Responder Con Cita
  #9  
Antiguo 27-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por JuanErasmo
Sabes que puerto utiliza el FireBird?
el 3050 por defecto.

Cita:
Empezado por JuanErasmo
y otra pregunta, es necesario bajar el Firebird SQL server?
No estoy seguro del todo, pero la lógica que yo aplico me dice que si. Tienes la BBDD en un servidor y varías personas accediendo a ella, de alguna forma se tiene que controlar el acceso simultaneo y/o concurrente, bloqueos y demás, y quien lo hace es el Firebird Guardian o tambien llamado Firebird SQL server.

Cita:
Empezado por JuanErasmo
Como son los parámetros en la configuracion de la DB?
Al dar doble clic sobre el IBdatabase te aparece una ventana, y desde allí tienes el boton para localizar la base de datos, usalo y verás como traduce la dirección y el path a la BBDD.

Lamento no poder darte los datos correctos, no tengo delphi a mano.

Cita:
Empezado por JuanErasmo
Que es SQL rol?
En principio, no habrás especificado roles, porque si lo hubieras hecho, sabrías que es (no pongas nada en esa caja).

Cita:
Empezado por JuanErasmo
Muchas gracias por tu colaboración.
Para eso estamos

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Ya lo hice! Gracias a tu ayuda Lepe, sin embargo hay un problema.
Sale una excepción donde está la DB remota, diciendo que el archivo aliases
no esta la base de datos...
luego le doy aceptar, y si me carga la base de datos. Como configuro ese archivo aliases?
Sabes como se configura ese archivo para que la lea?
Gracias!
Responder Con Cita
  #11  
Antiguo 27-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Unos detallitos:

Cita:
Empezado por Lepe
- La carpeta donde resida la BBDD deberá estar compartida en el servidor, con acceso de escritura.
Si estamos hablando de firebird, no hay que compartir nada en el servidor para tener acceso a la base de datos.

Cita:
Empezado por Lepe
- Si estas usando Interbase que viene con delphi, ten en cuenta que solo tienes licencias para 3 usuarios concurrentes. Si van a ser más de 3 usuarios, te recomiendo, por ejemplo, los Mercury
Interbase es el gestor de bases de datos y los componentes Mercury sirven para acceder a las bases de datos de interbase.
Si necesitas más licencias de interbase puedes comprarlas o pasarte a firebird que es libre y no tiene limitación en ese aspecto.
En cuanto a los componentes Mercury también son libres y sin limitaciones.

Saluditos.
Responder Con Cita
  #12  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Gracias a todos!

Su ayuda fue fundamental!
Responder Con Cita
  #13  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Pero una última cosa.... cuando sale el error de aliases.conf, que se debe hacer?
Responder Con Cita
  #14  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
probablemente hayas borrado el archivo. Simplemente crea un archivo en blanco con ese nombre en la carpeta donde está instalado firebird.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Otra posibilidad es que no estes enviando la ruta completa de la bd en la cadena de conexión, con lo que el motor trata de buscar un alias para dicha cadena (confieso que desconozco el comportamiento en ese caso).

He probado en local, renombrando mi aliases.conf, y he podido conectarme cuando envío la ruta completa. Si envio el un alias, digamos "repuesto", busca un archivo llamado "repuesto" en "c:\documents and settings\jachguate". uso firebird 1.5.3.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #16  
Antiguo 27-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Ahí esta el archivo pero ay que registrar el alias.... sabes como se registra el alias?
Gracias.
Responder Con Cita
  #17  
Antiguo 27-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En el fichero aliases.conf escribe un alias para la ruta de la base de datos.

Ejemplo:

Código:
   MisDatos = 192.168.0.1:c:\datos\mibasedatos.fdb
El alias en este caso es "MisDatos"


Si no tienes alias, seguramente el alias será el mismo nombre de la base de datos.

Ejemplo:

Código:
 mibasedatos.fdb = 192.168.0.1:c:\datos\mibasedatos.fdb

Creo recordar que es así.

Última edición por Casimiro Notevi fecha: 27-10-2005 a las 21:37:37. Razón: Puntualizar un dato
Responder Con Cita
  #18  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por JuanErasmo
sabes como se registra el alias?
Cita:
Empezado por c:\fb\aliases.conf
#
# List of known database aliases
# ------------------------------
#
# Examples:
#
# dummy = c:\data\dummy.fdb
#
..
repuesto = C:\Documents and Settings\jachguate\Mis documentos\Data\repuesto.fdb
uso:

Código Delphi [-]
  ibdrepuesto.DatabaseName := 'database.repuesto.com:repuesto';
  // o
  ibdrepuesto.DatabaseName := '192.168.1.27:repuesto';

En todo caso, definir alias, aunque es recomendable, es optativo. Es decir, no necesitas un alias para conectarte a una base de datos desde la red. Podes seguirte conectando con la cadena de conexión incluyendo la ubicación completa del archivo de base de datos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #19  
Antiguo 27-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Casimiro Notevi
Unos detallitos:

Si estamos hablando de firebird, no hay que compartir nada en el servidor para tener acceso a la base de datos.
Aqui me has dejado groki, no lo sabía, y supongo que hablarás con conocimiento de causa, así que gracias por el dato.

Cita:
Empezado por Casimiro Notevi
Interbase es el gestor de bases de datos y los componentes Mercury sirven para acceder a las bases de datos de interbase.
Si necesitas más licencias de interbase puedes comprarlas o pasarte a firebird que es libre y no tiene limitación en ese aspecto.
En cuanto a los componentes Mercury también son libres y sin limitaciones.
Si te fijas en su segundo mensaje, está trabajando con Firebird, pero usa Interbase para acceder, por tanto, solo tiene que usar las GExperts para reemplazar los IBDatasets por MDODataset (aunque no lo he probado, creo que el cambio puede ser relativamente rápido).
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #20  
Antiguo 27-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Lepe
Aqui me has dejado groki, no lo sabía, y supongo que hablarás con conocimiento de causa, así que gracias por el dato.
Cuando desde un "pc cliente" haces una consulta a una base de datos que está alojada en un "pc servidor", el cliente hace la petición al programa servidor de bases de datos, y éste último es el que accede a la base de datos, o sea, un cliente no puede acceder directamente a la base de datos, hace peticiones al servidor para que sea éste el que acceda a ella.

Como ejemplo siempre pongo el caso del restaurante, nosotros como clientes hacemos peticiones al servidor (camarero) y es el camarero el que accede a la cocina (base de datos de alimentos), pero nosotros como clientes no tenemos acceso directo a la cocina (base de datos), muchas veces ni siquiera podemos verla.

Así que el único que tiene acceso a la base de datos, en este caso, es firebird, nosotros, como cliente, únicamente podemos hacerle peticiones y él nos contesta (nos sirve)

Por lo tanto, al servidor no debemos tener ningún tipo de acceso, más que nada por seguridad.

Saludos.
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 20:03:53.


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