Ir al contenido


Foto

Conexion con Firebird


  • Por favor identifícate para responder
10 respuestas en este tema

#1 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 04 enero 2009 - 10:45

Hola
Viendo este tutorial de Egostar me pregunto:
El componente IBDatabase es el que contiene la dirección de esta.
Cuando se hace el ejecutable queda grabada en el programa.
Que pasa si la base de datos se cambia de directorio?.
Se puede enlazar por internet?.
Saludos
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 04 enero 2009 - 10:47

Hola

SI :D :D :D

Salud OS
  • 0

#3 Kipow

Kipow

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 228 mensajes
  • LocationGuatemala

Escrito 04 enero 2009 - 10:49

Hola
Viendo este tutorial de Egostar me pregunto:
El componente IBDatabase es el que contiene la dirección de esta.
Cuando se hace el ejecutable queda grabada en el programa.
Que pasa si la base de datos se cambia de directorio?.
Se puede enlazar por internet?.
Saludos



Asi es si queda grabada en el ejecutable pero es una propiedad que puedes cambiar facilmente.




delphi
  1. if IBDatabase1.Connected then IBdatabase.Close;
  2. IBDatabase.DatabaseName := //nueva Ruta de la base de datos (IP:Directorio)



Y con lo de acceder por internet tambien se puede solamente es de manejar correctamente el ruteo el puerto 3050 y listo.








  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 04 enero 2009 - 10:54

:)

Ya en serio

Yo normalmente utilizo la conexión "remota" aun cuando la base de datos esté en la misma máquina, me parece lo mas adecuado, tal vez estoy mal, pero no he tenido ningún problema hasta este momento.

Yo uso el registro para incluir los datos de la base, tal como tú lo haces con tus programas en Access utilizando archivos INI.

En el evento OnCreate de mi programa hago esto.



delphi
  1. procedure TFMenu.FormCreate(Sender: TObject);
  2. begin
  3.   { Obtiene Parametros de Comunicacion a Base de Datos }
  4.   FIniFile        := TRegIniFile.Create();
  5.   FIniFile.RootKey := HKEY_LOCAL_MACHINE;
  6.   RutaBase        := FIniFile.ReadString('Software\STarADM\DATA', 'DataBasePath', '');
  7.   RutaBaseBackup  := FIniFile.ReadString('Software\STarADM\DATA', 'BackupBDPath', '');
  8.   Servidor        := FIniFile.ReadString('Software\STarADM\DATA', 'Server', '');
  9.   Protocolo        := FIniFile.ReadInteger('Software\STarADM\DATA', 'Protocol', 0);
  10.   FIniFile.Free;
  11. end;



y en el DataModule hago esto:



delphi
  1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
  2. begin
  3.   case FMenu.protocolo of
  4.     0: IBDatabase1.DatabaseName := FMenu.Servidor+':'+FMenu.RutaBase;
  5.     1: IBDatabase1.DatabaseName := '\\'+FMenu.Servidor+'\'+FMenu.RutaBase;
  6.   end;
  7.   try
  8.   IBDatabase1.Open;
  9.   except
  10.     ShowMessage('Hubo un error al inicializar la conexión con la base de datos.'#13+
  11.                 'Verifique que los datos de acceso a la base sea la correcta'#13+
  12.                 'en el menu Herramientas->Configuración'#13+
  13.                 'Después de modificar los datos, reinicie esta aplicación.');
  14.   end;
  15. end;



Para la parte de Intenet, pues solo tienes que tener tu servidor alcanzable desde Internet y abrir el puerto TCP 3050.

Salud OS
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 04 enero 2009 - 10:58

Hola
Casualmente pense en el INI y me quedo la duda de si se podia usar en firebird a IB, veo que si.
No entiendo muy bien todavia la parte de internet.
Donde coloco la ip?, no veo donde.
Saludos
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 04 enero 2009 - 11:02

En las variables Servidor y RutaBase está la clave

por ejemplo

Servidor = 'LAPTOPX' ó '192.168.0.1',
RutaBase = 'C:\Programa\Base\Base.FBD'


En la conexión con la base asignamos el DataBaseName de esta forma:

IBDatabase1.DatabaseName := FMenu.Servidor+':'+FMenu.RutaBase;

Lo cual tendrá esto

IBDatabase1.DatabaseName := 'LAPTOPX:C:\Programa\Base\Base.FBD';

ó

IBDatabase1.DatabaseName := '192.168.0.1:C:\Programa\Base\Base.FBD';

Esto es usando el protocolo TCP

Salud OS



  • 0

#7 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 04 enero 2009 - 11:07

Hola
Osea:
Simplemente se le antepone la ip a la direccion y listo.
usando TCP.
Suena facil, lo probare.
Gracias.
Saludos
  • 0

#8 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 04 enero 2009 - 11:29

Carlos, No te olvides además de habilitar el puerto 3050 que es el que emplea Firebird.
Para ello añadelo a la lista de excepciones del Firewall de Windows.
Tal como te han comentado, ese funcionamiento sirve para una red LAN.

Por el tema de Internet, suponiendo que deseas hacerlo desde "afuera", es un poquito más complicado. La cadena de conexión es la misma: IP+:+Disco+:+\Directorio\BaseDatos. La parte complicada está en que debes realizar NAT en tu modem para redigir la comunicación del puerto 3050 hacia tu máquina.

Si haces uso de una conexión de banda ancha mediante IP dinámica, deberás emplear algo conocido como no-ip para que te sea sumnistrada una ip fija que apunte a las ip dinamica del DNS y mediante ese "puente de ips" puedes realizar la comunicación. Mucho de esto no te sabría decir... no se como explicarlo en forma simple. ¿alguien puede dar una mano :s?

Saludos,
  • 0

#9 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 04 enero 2009 - 11:51

Hola
Eso mismo pense, el problema cuando se cambia la ip.
Si cambia no sabras cual es.
Bueno, para eso ya me hice un programita que me envia la nueva ip cuando esta ha cambiado. :D
Saludos
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 04 enero 2009 - 12:11

Hola
Eso mismo pense, el problema cuando se cambia la ip.
Si cambia no sabras cual es.
Bueno, para eso ya me hice un programita que me envia la nueva ip cuando esta ha cambiado. :D
Saludos


Pues, precisamente por eso amigo Caral yo uso el nombre del servidor en lugar de la IP, de esa forma no te interesaría ni te preocuparía que se resetee la IP.

Salud OS

PD, Solo requieres de tener DNS en tu red.
  • 0

#11 Kipow

Kipow

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 228 mensajes
  • LocationGuatemala

Escrito 04 enero 2009 - 01:08

Hola
Eso mismo pense, el problema cuando se cambia la ip.
Si cambia no sabras cual es.
Bueno, para eso ya me hice un programita que me envia la nueva ip cuando esta ha cambiado. :D
Saludos


pues eso es lo que hace mas o menos el http://www.no_ip.com te actualiza este se actualiza si no estoy mal cada 5min.
  • 0




IP.Board spam blocked by CleanTalk.