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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.731
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.021
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.021
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
  #8  
Antiguo 21-07-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.731
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Prueba a hacer un ping a Servidor desde el cliente, para ver si resuelve correctamente la dirección:

Código:
C:\> ping Servidor
Haciendo ping a Servidor [fexx::3dxx:19xx:c5xx:d4xx%3] con 32 bytes de datos:
Respuesta desde feexx::3dxx:19xx:c5xx:d4xx%3: tiempo<1m
Respuesta desde feexx::3dxx:19xx:c5xx:d4xx%3: tiempo<1m
Respuesta desde feexx::3dxx:19xx:c5xx:d4xx%3: tiempo<1m
Respuesta desde feexx::3dxx:19xx:c5xx:d4xx%3: tiempo<1m

Estadísticas de ping para feexx::3dxx:19xx:c5xx:d4xx%3:
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0
    (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
    Mínimo = 0ms, Máximo = 0ms, Media = 0ms

C:\>
De todos modos, en el servidor puedes obtener la dirección IP mediante el comando ipconfig:

Código:
C:\>ipconfig

Configuración IP de Windows

Adaptador de Ethernet Ethernet:

   Sufijo DNS específico para la conexión. . :
   Vínculo: dirección IPv6 local. . . : fexx::c4xx:edxx:61:13xx%7
   Dirección IPv4. . . . . . . . . . . . . . : 10.10.9.42
   Máscara de subred . . . . . . . . . . . . : 255.255.255.0
   Puerta de enlace predeterminada . . . . . : 10.10.9.254
...
Responder Con Cita
  #9  
Antiguo 21-07-2017
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola....

Algo me dice que estás tratando de verificar si el servicio de FB está funcionando en las PC's cliente, algo que siempre te va a dar error ya que el servicio solo está activo en el equipo servidor...

Verifica si es eso lo que estás haciendo, o al menos indica que valores le pasas a los parámetros de la función ServiceStatus....



Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #10  
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 duilioisola Ver Mensaje
Prueba a hacer un ping a Servidor desde el cliente, para ver si resuelve correctamente la dirección:
Pues no se me había ocurrido

Cita:
Empezado por maeyanes Ver Mensaje
Algo me dice que estás tratando de verificar si el servicio de FB está funcionando en las PC's cliente, algo que siempre te va a dar error ya que el servicio solo está activo en el equipo servidor...

Verifica si es eso lo que estás haciendo, o al menos indica que valores le pasas a los parámetros de la función ServiceStatus...
Creo que tienes razón. La función que uso es tal cual la he puesto antes, así que efectivamente estoy comprobando si funciona donde se lanza el programa. Sin embargo, tal cual está escrito está funcionando en otra red sin ningún probelam y por eso no la he tocado; pero tienes razón en esa puntualización porque ahora mismo no recuerdo cómo está montada esa otra red y no tengo acceso directo a ella. Está a más de 120 Km. de mi residencia y no podemos montar un escritorio remoto como TeamViewer porque les han capado TODOS los puertos de acceso externos.
Responder Con Cita
  #11  
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.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
... no podemos montar un escritorio remoto como TeamViewer porque les han capado TODOS los puertos de acceso externos.
Solamente hace falta que tenga internet para poder navegar. Todos estos programas no necesitan otros puertos.
Responder Con Cita
  #12  
Antiguo 24-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
Solamente hace falta que tenga internet para poder navegar. Todos estos programas no necesitan otros puertos.
Internet si tienen pero les han limitado tanto los accesos que ni siquiera puedo enviar un enlace a Google Drive a la dirección oficial del sitio y tenemos que andar con las cuentas de correo particulares. Para el escritorio estoy usando una web de Cisco (https://meetings.webex.com/collabs/auth) que aunque no me deja interactuar sí me deja ver la pantalla remota; no es mucho pero menos es nada.
Responder Con Cita
  #13  
Antiguo 24-07-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
Internet si tienen
Si pueden navegar por internet, entonces funcionará casi cualquier programa de ese tipo.
Responder Con Cita
  #14  
Antiguo 24-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
Si pueden navegar por internet, entonces funcionará casi cualquier programa de ese tipo.
Pues te juro que es imposible, o no sé cómo hacerlo funcionar. Antes de que empezaran a meter cortafuegos y trabas no había problema pero ahora no hay forma de usar el TeamViewer.
Responder Con Cita
  #15  
Antiguo 24-07-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues que lo detengan un rato, a ver si eso mismo es el culpable de que no funcione firebird.
Responder Con Cita
  #16  
Antiguo 25-07-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Creo que el tema principal es que los administradores de la REd te den las facilidades, si tienen buenos conocimientos entenderan rapidamente tu problematica y la solucionaran y tambien es bueno que siempre se tenga claro como trabaja con un servidor de base de datos standar (direccion ip o nombre de la PC, puerto, instancia, credenciales).

La manera simple de probar el acceso al equipo servidor es con ul telnet a la ip y puerto o con un cliente dedicado(navicat, heidi, sql admin, etc). En estos caso seimpre que conecto un cliente le instalo este multicliente y con el pruebo >> http://dbeaver.jkiss.org/download/.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #17  
Antiguo 26-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
Pues que lo detengan un rato, a ver si eso mismo es el culpable de que no funcione firebird.
Mira, lo he intentado todo salvo una cosa (que acabo de dar cuenta): decirle al cortafuegos que permita usar esa aplicación. Fallo mío.
Cita:
Empezado por bitbow Ver Mensaje
Creo que el tema principal es que los administradores de la REd te den las facilidades, si tienen buenos conocimientos...
Ese es el probelma: Que no tienen ni idea no ya de redes, ni siquiera de mantenimiento básico de un PC. Y no es culpa suya; ellos sólo tiene que saber usar las herramientas que les dan no como se mantienen. Para eso estamos los demás, programadores y técnicos. Seguiremos luchando. Lo más gracioso es que tengo menos problemas con los equipos instalados en Ciudad Real que con los de Toledo que es donde vivo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 03:17:59
Conexion a DBF con ADO totote Conexión con bases de datos 9 02-06-2008 11:01:37
Conexion ftp fedelphi Varios 2 24-01-2007 22:31:55
conexion en red alfil123 Conexión con bases de datos 2 02-11-2006 22:09:14
Conexión a VPN Novás Internet 1 22-08-2006 17:18:17


La franja horaria es GMT +2. Ahora son las 11:23:35.


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