Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Conexión en red a FB

Hace unos meses planteaba una duda que me había surgido al conectar en red una base de datos FB (Conectar Firebird en red). Aquel problema quedó resuelto sin ningún problema.

Sin embargo ahora, que he tenido que instalar la misma aplicación en otra red distinta no soy capaz de hacer que los puestos se conecten al motor en el servidor. Seguro que las preguntas son una estupidez pero llevo diez días dando vueltas y no soy capaz de ver que pasa.
  1. Lógicamente el motor ¿sólo tiene que instalarse en el servidor?
  2. En los puestos ¿sólo hay que copiar la libreria fbcliente.dll o hace falta algo más?
  3. ¿Puede el problema venir porque el servidor pida usuario y clave para poder acceder a él desde la red? Si es así ¿cómo se indico desde la aplicación esto valores del servidor?
Os agardezco de antemano las respuestas que me podáis dar.
Responder Con Cita
  #2  
Antiguo 21-07-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
1.
El servidor tiene que estar instalado en el ordenador que haga de servidor.
Este ordenador tendrá una IP asignada
El puerto TCP/3050 debe estar abierto para permitir conexiones desde la red.
La base estará en una carpeta
La base de datos tendrá un nombre y una extensión .FDB
El servidor de base de datos, tiene un nombre de usuario y contraseña por defecto (SYSDBA - masterkey) que pueden cambiarse y dependiendo de la instalación quizás sea una contraseña generada al azar y que estará un un fichero en la misma carpeta donde se ha instalado (Linux normalmente)
El fichero de configuracion de Firebird tiene un item donde dice desde qué IPs externas se puede conectar. (En una instalación en Ubuntu he tenido que tocarlo).
Con esto debes conectar desde otros ordenadores con
IP:Path/Nombre.FDB
Windows: 192.168.1.1:C:\Datos\Base.FDB
Linxu: 192.168.1.1:/datos/base.fdb

2.
En los clientes hago la instalación mínima. Esto pone cada cosa en su lugar.

3.
Todo depende del mensaje de error...
Si te dice algo como '#10060', es normalmente un problemda de red.
Si te dice algo como 'username or password incorrecto', es nombre de usuario y contraseña.
si te dice algo como 'file not found' puede ser que la base no esté donde la buscar o que no coinciden mayúsculas y minúsculas (linux).

Envía el mensaje de error sin tocar ni traducir para que podamos ayudarte un poco mas...
Responder Con Cita
  #3  
Antiguo 21-07-2017
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 duilioisola Ver Mensaje
Envía el mensaje de error sin tocar ni traducir para que podamos ayudarte un poco mas...
Responder Con Cita
  #4  
Antiguo 21-07-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias por la respuesta. Vamos allá.
  • El servidor tiene que estar instalado en el ordenador que haga de servidor. OK
  • Este ordenador tendrá una IP asignada ??
  • El puerto TCP/3050 debe estar abierto para permitir conexiones desde la red. OK
  • La base estará en una carpeta OK
  • La base de datos tendrá un nombre y una extensión .FDB OK
  • El servidor de base de datos, tiene un nombre de usuario y contraseña por defecto (SYSDBA - masterkey) que pueden cambiarse y dependiendo de la instalación quizás sea una contraseña generada al azar y que estará un un fichero en la misma carpeta donde se ha instalado (Linux normalmente) OK (pero la instalación es en Windows)
  • El fichero de configuracion de Firebird tiene un item donde dice desde qué IPs externas se puede conectar. (En una instalación en Ubuntu he tenido que tocarlo). ??
Con esto debes conectar desde otros ordenadores con

Windows: 192.168.1.1:C:\Datos\Base.FDB >> Estoy tratando de acceder con Servidor/3050:D:\DatAfi30\Tablas\Afiliados.fdb

Cita:
Empezado por duilioisola
En los clientes hago la instalación mínima. Esto pone cada cosa en su lugar.
En la otra instalación que tengo hecha de esta aplicación creo recordar pero no estoy 100% seguro que en el puesto no se puso nada más que la librería

Cita:
Empezado por duilioisola
Todo depende del mensaje de error...
Si te dice algo como '#10060', es normalmente un problemda de red.
Si te dice algo como 'username or password incorrecto', es nombre de usuario y contraseña.
si te dice algo como 'file not found' puede ser que la base no esté donde la buscar o que no coinciden mayúsculas y minúsculas (linux).

Envía el mensaje de error sin tocar ni traducir para que podamos ayudarte un poco mas...
Esto último va a ser más complicado porque en la instalación tengo montada una minigestión de errores y genero yo los mensajes que me interesan. El mensaje que se muestra al arrancar me avisa que el servicio FB no está activo; es casi lo primero que hago al lanzar la aplicación: validar que FB está arrancado. Sí he comprobado que en el servidor la aplicación se lanza bien y sin problemas. La validación la hago con esto:
Código:
try
{
     if (!isFirebirdRunning())
          throw Exception("El servicio Firebird no está activo.\nRevise su estado en:\n\n· Panel de control\n· Herramientas administrativas\n· Servicios\n· Firebird Server");

     Application->Initialize();
     Application->Title = cVersion;
     Application->CreateForm(__classid(TfPersona), &fPersona);
     Application->Run();
}
catch (Exception &exception)
{
     Application->ShowException(&exception);
}
Y la función llamada es esta:
Código:
#pragma hdrstop

#include "checkFirebird.h"
#include "WinSvc.hpp"

#pragma package(smart_init)
//---------------------------------------------------------------------------

DWORD ServiceStatus(const char* &sMachine, const char* &sService)
{
     SC_HANDLE schm, schs;
     TServiceStatus ss;
     DWORD dwStat = 0;

     schm = OpenSCManager(sMachine, NULL, SC_MANAGER_CONNECT);

     if (schm > 0)
     {
          schs = OpenService(schm, sService, SERVICE_QUERY_STATUS);

          if (schs > 0)
          {
               if (QueryServiceStatus(schs, &ss))
                    dwStat = ss.dwCurrentState;
               CloseServiceHandle(schs);
          }
          CloseServiceHandle ( schm );
     }
     return dwStat;
}
//---------------------------------------------------------------------------

bool isFirebirdRunning(void)
{
     return ServiceStatus("", "FirebirdServerDefaultInstance") == SERVICE_RUNNING;
}
//---------------------------------------------------------------------------
Creo recordar que la saqué de este foro.
Responder Con Cita
  #5  
Antiguo 21-07-2017
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 Angel.Matilla Ver Mensaje
Windows: 192.168.1.1:C:\Datos\Base.FDB >> Estoy tratando de acceder con Servidor/3050: D:\DatAfi30\Tablas\Afiliados.fdb
Haz caso de lo que dice duilioisola.
Además, si la unidad D: no es un disco físico del servidor (sino una unidad de red), tampoco funcionará,
Responder Con Cita
  #6  
Antiguo 21-07-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Haz caso de lo que dice duilioisola.
Además, si la unidad D: no es un disco físico del servidor (sino una unidad de red), tampoco funcionará,
Probaré. D es un disco físico del servidor.
Responder Con Cita
  #7  
Antiguo 21-07-2017
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Por aportar algo que puede ser de ayuda, en la carpeta en la que se instaló firebird encontraras un fichero ALIASES.CONF
Puedes editar ese archivo escribiendo el nombre del alias que tu decidas, seguido de igual y de la ruta física del fichero con la BD. Por ejemplo
TIENDA = C:\DATOS\TIENDA.FDB
ALMACEN = D:\BBDD\ALMACEN.FDB

Si en tu caso estás intentando accede a:
Servidor/3050: D:\DatAfi30\Tablas\Afiliados.fdb
y d: es una unidad del servidor, podrías configurar el ALISASES.CONF asi:
AFILIADOS = D:\DatAfi30\tablas\Afiliados.fdb
y concectarte de esta forma
Servidor/3050: AFILIADOS
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
Conexion VPN m8estrella83 Redes 2 08-05-2012 02:17:59
Conexion a DBF con ADO totote Conexión con bases de datos 9 02-06-2008 10:01:37
Conexion ftp fedelphi Varios 2 24-01-2007 21:31:55
conexion en red alfil123 Conexión con bases de datos 2 02-11-2006 21:09:14
Conexión a VPN Novás Internet 1 22-08-2006 16:18:17


La franja horaria es GMT +2. Ahora son las 16:48:27.


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