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 04-06-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
conexión interbase a Dellphi 2010

hola, trabajo con interbase server 2009 y delphi 2010, he hecho programas en delphi 5 con tablas paradox complejos que me han servido de mucho, pero ahora se me queda corto con los nuevos avances, ahora trabajo en delphi 2010 he hecho un pequeño programa de prueba en casa al cual he asociado a una Base de datos interbase llamada Maestro con una tabla Clientes, como prueba para ver si funciona, he cogido los archivos *.dcu de delphi y el archivo Maestre.iB, y los he copiado en el ordenador de mi empresa también en el mismo directorio, allí tengo instalado interbase server 2009, pero no consigo conectar la base de datos Maestro al programa delphi me sale unvailable database, con Ibconsole abro la tabla y todo pero no consigo conectarlo al programa, os agradecería qué es lo que me falta, muchísimas gracias
Responder Con Cita
  #2  
Antiguo 04-06-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola: fijate en este post de Caral ya que seguro es una configuracion de los componentes que estas usando.-

Saludos.-

Pd: a partir del mensaje #7
Responder Con Cita
  #3  
Antiguo 04-06-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
la conexíón es correcta en mi ordenador de casa entre Interbase y Delphi 2010, pero en el ordenado de mi empresa sólo tengo instalado interbase server 2009, y lo que hago es copiar sólo los *.dcu del programa prueba de casa junto con la base de datos Maestro.ib, y los llevo al ordenador de mi empresa, pero allí me da el error al ejecutar el ejecutable me pide la contraseña de la base de datos se la doy y me sale el error de unvailable database, a pesar de que por el IbConsole de Interbase de mi empresa, sí puedo abrir la base de datos Maestro.ib y la tabla asociada que es Clientes y puedo ver los registros, pero sólo por el Ibconsole, no desde el programa el pequeño programa de prueba que he hecho, donde sólo he copiado los *.dcu y la Base de Datos Maestro.ib. Gracias de antemano por vuestra comprensión.
Responder Con Cita
  #4  
Antiguo 05-06-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
Gracias MartinS,

Quizá no me haya expresado bien, sólo queria llevar mi programa hecho en delphi2010 en casa que funciona bien con la conexión a la base de datos interbase a otro pc, pero sólo llevar los archivos ejecutables del programa y la base de datos, pero me da error al ejecutarlo me sale unavailable database, y claro con los archivos ejecutables no me puedo meter internamente para configurarlo, qué puedo hacer para que se conecte?

Muchas Gracias.
Responder Con Cita
  #5  
Antiguo 05-06-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola: Bueno, ahi te adjunto la imagen de la configuración del componente TIbDatabase.
Otra configuracion que hago es mediante un archivo .ini que coloco junto al ejecutable donde coloco la direccion que tiene la base de datos. El contenido del archivo Bdatos.Ini es el siguiente:

Cita:
[BD]
Path=":C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"
Esto es para el .ini si la base esta en la misma pc (observa los : antes de C - No se si es igual para interbase)

y para el caso que quiera ejecutar el programa desde otra PC: Copio el ejecutable y el ini en esa pc y lo edito asi:

Cita:
[BD]
Path="xxx.xxx.xxx.xxx:C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"
Donde xxx.xxx.xxx.xxx es la direccion de IP donde se encuentra la base de datos junto con la direccion del archivo en la Pc (Directorio).
Dado que podes editar el .ini de acuerdo a la ubicación física de la base de datos no tendrias inconvenientes en llevar esa base y ponerla donde tu desees.

el codigo para leer el .ini es el siguiente y lo tengo en el evento OnCreate del DataModule


Código Delphi [-]

Uses IniFiles;

procedure TDm.DataModuleCreate(Sender: TObject);
Var BaseDeDatos: String;
    IniFile: TIniFile;
begin
   // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then
    ShowMessage('Error al cargar Base de Datos') else
    BaseGeneral.DatabaseName := BaseDeDatos;   // BaseGeneral es el TIbDatabase y le asigno la ruta de la base de datos segun .ini
end;

Acordate de los servicios de Firebird o Interbase que deben estar ejecutandose.-

Saludos.-

Última edición por MartinS fecha: 25-07-2012 a las 01:04:54.
Responder Con Cita
  #6  
Antiguo 11-06-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
Hola Martín S, gracias por tu interés, aunque no me funciona con el programilla, sí me funciona haciéndolo diréctamente, es decir en el Databasename le coloco xxx.xxx.x.x más la ruta y me funciona perfectamente en el otro ordenador, y además en los que a su vez están conectados a su red, puedo modificar la base de datos en cualquier ordenado de la red interna de mi empresa, creí que no lo conseguiría nunca, y me he llevado una gran alegría.

Seguramente es un problema de Delphi 2010 por que al escribir:

ElIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');

ya me da error si no le pongo comillas a Application.ExeName, y todas las aplicaciones que he buscado no llevan comillas, después sigo

BasedeDatos := IniFile.ReadString('BD','Path','');
If BasedeDatos = '' then
ShowMessage('Error al cargar Base de Datos') else
ibdatabaseclientes.DatabaseName:='c:\Maestros1\Maestro.ib'; // BaseGeneral es el TIbDatabase y le asigno la ruta de la base de datos segun .ini

La Base de datos se llama Maestro.ib, y la ruta C:\Maestros1\Maestro.ib, pero claro aquí debería sólo poner el archivo.ini, para que la ruta siempre la lea de ini, que es el archivo que yo puedo modificar en el ordenador externo, donde sólo tengo los ejecutables, en fin he probado con comillas en el Application.Exename, sin comillas, en el database he puesto el *.ini, para que lo lea, el archivo ini tiene lo siguiente:

[BD]
path='C:\Maestros1\Maestro.IB'

Configurado para que primero funcione en el ordenador donde estoy haciendo el programa, pero ya me he dado por vencido hasta que lo pruebe en otro momento de nuevo, pero vamos poniendolo directamente en el Databasename la ruta me funciona y se conecta en red la base de datos, así que estoy ya supercontento con eso, si vienes por el sureste de España dímelo y te invito a unas cervezas, jaja, muchas Gracias.
Responder Con Cita
  #7  
Antiguo 12-06-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola Gines: Te comento que yo uso Delphi XE y si copias el codigo tal como esta te tiene que funcionar. Igual te lo acomode de acuerdo al nombre que le diste a la variable del ini:

Código Delphi [-]
Procedure TDm.DataModuleCreate(Sender: TObject);   
   Var BaseDeDatos: String;
    ElIniFile: TIniFile;
begin
   // Obtiene la ruta y el nombre de la base de datos
   ElIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
   BasedeDatos := ElIniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then
    ShowMessage('Error al cargar Base de Datos') else
    BaseGeneral.DatabaseName := BaseDeDatos;   // BaseGeneral es el TIbDatabase y le asigno la ruta de la base de datos segun .ini
end;

A tener en cuenta:
a) Tipo de variable que es ElIniFile
b) Debes colocar en el Uses IniFiles (IniFiles es el nombre de la unidad que contiene las funciones para los ini).
No hay grandes cambios. Deberia funcionar, si no es asi, subi el error que te dice.-

Saludos

PD. Hacen buena cerveza negra por ahi??
Responder Con Cita
  #8  
Antiguo 13-06-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Otra observación:

[BD]
path="C:\Maestros1\Maestro.IB" <-- Con comillas dobles

Saludos
Responder Con Cita
  #9  
Antiguo 17-06-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
Hola de nuevo Martin S, llevo unos días liadillo,

Ya encontré la errata, eran dos comillas eso por un lado como me dijiste, pero en el Uses faltaba "Forms", que no me lo había cargado Delphi 2010, lo coloqué y funciona a la perfección, era algo que se daba por supuesto.

Muchas Gracias, nunca había podido trabajar en red con ninguno de mis programas, ahora es sólo cambiar el contenido del INI y puede funcionar en cualquier sitio, una maravilla.


PD: Por aqui es la Estrella de Levante la que se fabrica pero vamos, Cerveza Negra también hay aunque no de aquí, si vienes por Murcia, sur de Alicante da un toque al ginesgomezlopez@hotmail.com.

Gracias.
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
Problemas de conexión delphi 2010-Postgresql marcosbh PostgreSQL 9 02-02-2012 02:12:44
Ayuda con Conexion Firebird delphi 2010 pelikno Conexión con bases de datos 2 06-09-2011 21:02:28
Conexión dbexpress con Delphi 2010 JosepGA Conexión con bases de datos 2 23-01-2011 18:37:40
¿Cómo utilizar la conexión db en intraweb de delphi 2010? Master23 Internet 1 28-07-2010 05:41:26
Conexión ADO a Interbase kes Firebird e Interbase 2 05-12-2003 17:35:19


La franja horaria es GMT +2. Ahora son las 13:49:09.


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