Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Thumbs up Levantar Proyecto Pascal - Borland Delphi 7 y Componentes

Hola a todos, espero sea un apartado correcto dentro del foro para publicar el tema.

Resulta que en mi emocionante viaje como programador novato, me aventuré en el vasto mundo de Pascal. Mi tarea actual: levantar un proyecto existente el cual cuenta con formularios (entre muchos otros componentes) en Pascal utilizando Delphi 7, junto con una intrigante serie de componentes. Pero aquí está el desafío: ¡una base de datos en Firebird 2.0! Mis primeros pasos fueron como los de un explorador en tierras desconocidas. Con cada problema que surgía al intentar levantar el proyecto, surgían preguntas. Sin embargo, con la magia de Internet y la ayuda de foros devotos, he superado obstáculos. Ahora, me encuentro en un nuevo dilema, uno que me tiene perplejo: ¿cómo identificar la conexión de Pascal con Firebird? ¿Cómo cambio esas enigmáticas cadenas de conexión? Me encuentro en la encrucijada de mi viaje y apelo a la comunidad. ¿Alguna alma amable puede señalarme hacia una URL / Manual que ilumine mi camino y me guíe en la identificación de componentes de conexión a bases de datos?

¡Vuestra ayuda será mi faro en esta travesía!
Responder Con Cita
  #2  
Antiguo 10-01-2024
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
Hola, da pocas pistas (ninguna), deberías poner algo de código, o nombres, o algo.
De todas formas, los más habituales son los IBX que vienen con el propio delphi en la pestaña Interbase.

Puede que tengas otros, pero mejor que nos des más información.
Por cierto, bienvenido a clubdelphi.

Última edición por Casimiro Notevi fecha: 10-01-2024 a las 13:30:03. Razón: Corregir error sintáctico :-P
Responder Con Cita
  #3  
Antiguo 10-01-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por delphi001 Ver Mensaje
¿cómo identificar la conexión de Pascal con Firebird?
¿Cómo cambio esas enigmáticas cadenas de conexión?
No se si te refieres a buscarlos manualmente o a buscarlos de forma automática.
Lo primero y primordial es saber si estás utilizando 1 o varios frameworks de conexión y cuales son:
* BDE
* ADO
* IBExpress
* FIBPlus
* ....

Si es uno nos centramos ese ese, si son varios nos centramos en ellos.

Lo digo porque dependiendo del framework (grupo de componentes) es posible conectarse con:
* Un componente de conexión del tipo TADOConnection, TConnection, TDatabase, ...
* También con un derivado de TDataset (TADOQuery o TADOTable por poner un ejemplo) utilizando una cadena de conexión.

Osea que lo primero es aclarar eso.
Si no sabes cómo, dilo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 11-01-2024
Delphi01 Delphi01 is offline
Miembro
 
Registrado: nov 2015
Ubicación: Barcelona,España
Posts: 68
Poder: 9
Delphi01 Va por buen camino
Cita:
Empezado por delphi001 Ver Mensaje
Hola a todos, espero sea un apartado correcto dentro del foro para publicar el tema.

Resulta que en mi emocionante viaje como programador novato, me aventuré en el vasto mundo de Pascal. Mi tarea actual: levantar un proyecto existente el cual cuenta con formularios (entre muchos otros componentes) en Pascal utilizando Delphi 7, junto con una intrigante serie de componentes. Pero aquí está el desafío: ¡una base de datos en Firebird 2.0! Mis primeros pasos fueron como los de un explorador en tierras desconocidas. Con cada problema que surgía al intentar levantar el proyecto, surgían preguntas. Sin embargo, con la magia de Internet y la ayuda de foros devotos, he superado obstáculos. Ahora, me encuentro en un nuevo dilema, uno que me tiene perplejo: ¿cómo identificar la conexión de Pascal con Firebird? ¿Cómo cambio esas enigmáticas cadenas de conexión? Me encuentro en la encrucijada de mi viaje y apelo a la comunidad. ¿Alguna alma amable puede señalarme hacia una URL / Manual que ilumine mi camino y me guíe en la identificación de componentes de conexión a bases de datos?

¡Vuestra ayuda será mi faro en esta travesía!
Hola,
Puedes conectar tu aplicación desarrollada en Delphi 7 a una base de datos Firebird 2.0. Para lograrlo, necesitarás un componente de conexión compatible con Firebird en tu entorno de desarrollo (IDE). En Delphi, el componente adecuado para trabajar con bases de datos Firebird se llama "IBDatabase" y pertenece a la biblioteca "InterBase Express" (IBX).

Aquí te muestro cómo puedes utilizar el componente IBDatabase para conectarte a tu base de datos Firebird 2.0 desde Delphi 7:

1. Asegúrate de tener instalado el paquete IBX en tu IDE Delphi 7. Puedes encontrar el archivo de instalación en el sitio web oficial de Embarcadero o en otros repositorios de software.
http://cc.embarcadero.com/Item/20227

2. En tu formulario de Delphi, coloca un componente IBDatabase desde la paleta de componentes. Busca el componente dentro de la categoría "InterBase" o "Firebird".

3. Configura las propiedades del componente IBDatabase para establecer la ruta de acceso a tu base de datos Firebird, el nombre de usuario y la contraseña para acceder a la base de datos. Algunas propiedades importantes pueden ser: DatabaseName, UserName y Password.

4. Puedes conectar el componente IBDatabase en el evento OnCreate del formulario o en cualquier otro lugar adecuado según tus necesidades.

5. Utiliza otros componentes de la biblioteca IBX, como IBQuery o IBDataset, para ejecutar consultas SQL en tu base de datos y manipular los datos.

Aquí tienes un ejemplo de código para conectarte a la base de datos Firebird utilizando el componente IBDatabase:



Código:
uses
  IBDatabase;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IBDatabase1.DatabaseName := 'ruta_a_tu_base_de_datos.fdb';
  IBDatabase1.UserName := 'tu_usuario';
  IBDatabase1.Password := 'tu_contraseña';
  
  try
    IBDatabase1.Connected := True;
    ShowMessage('Conexión exitosa con Firebird');
  except
    on E: Exception do
      ShowMessage('Error al conectar con Firebird: ' + E.Message);
  end;
end;
Suerte.
Responder Con Cita
  #5  
Antiguo 11-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Smile

Gracias Casimiro Notevi!
Gracias Neftali [Germán.Estévez]!
Gracias Delphi01!


¡Saludos!

No estoy seguro de como púedo saber que tipo de tecnología(s) se encuentran aplicadas para la conexión con Firebird, pero he encontrado estos componentes en el código base:
TIBQuery (Tengo entendido se trata de IBX)
TDataSource (Tengo entendido se trata de VCL)
IB_Connection (Tengo entendido se trata de Interbase)
TIBOQuery (Tengo entendido se trata de Interbase)
DatabaseName = '192.168.1.2:Mi-BD' (La BD utilizada)


En cuanto al código base, dejo un par de fragmentos que me indican que se usa una serie de parámetros especificados en alguna parte que aun no logro comprender. Archivo: proyecto.dpr

Código:
 frmSplash:=TfrmSplash.Create(Application);
  frmSplash.Caption:=sNomSystem;
  PreparaSplash(True, 1, 1, 1); // Mostrar, nMin, nMax, posIni
  ActSplash('Conectando con el Servidor...',' ',0);
  ActSplash('','Revisar que tenga todos los parámetros',1);
    If ParamCount<2 then
      begin
        myMessageDlg('Faltan Parámetros: '+_Enter+sNomSystem, mtError ,'',0);        
      end;

  ActSplash('','...',1);
    //PRIMER parámetro: Indica se esta ejecutando desde RunSystem
    Try
      sTmp:=myUpperCase(ParamStr(1));      
    Except
      Raise Exception.Create(Incorrecto);
    end;
    //SEGUNDO parámetro: Path de la base de datos
    Case myStrIndex(sTmp,[_NomExeRun,'PALABRA']) Of
    0:begin        
        Try
          getDBPath:=ParamStr(2);          
          DatosIni:=TStringlist.Create;
          k:=Pos(':',getDBPath);
          If k=0 then
            begin
              DatosIni.Add('');
              DatosIni.Add(getDBPath);
            end
          else
            begin
              DatosIni.Add(Copy(getDBPath,1,k-1));
              DatosIni.Add(Copy(getDBPath,k+1,100));
            end;
        Except
          Raise Exception.Create(Incorrecto);
        end;
      end;

          

 begin
            DatosIni:=TStringlist.Create;
            DatosIni.LoadFromFile(_NomIniSystemMiFile);
            //GET Path BD de las DOS PRIMERAS LINEAS del file _NomIniSystemMiFile
            getDBPath:=DatosIni[0]+':'+DatosIni[1];
Desafíos que enfrento:

- Aparentemente se guarda en un archivo .ini pero no localizo un .ini que contenga 192.168.1.2:Mi-BD
- Intenté reemplazando todas las coincidencias de 192.168.1.2:Mi-BD en archivos *.dfm por mi BD TEST en 192.168.1.1B-Test (No funcionó ya que se sigue conectando a la base 192.168.1.2:Mi-BD)
- Mi BD Test ya me aseguré tenga su alias, puerto y bien configurada para ser accedida desde local y desde la red lan (probe accediendo con clientes como flamerobin y IBExpert y funciona bien en ambos casos).

Nota: El proyecto se conecta unicamente a una BD en Firebird.

Tu experiencia y orientación serán invaluables para avanzar en este tema. ¿Puedes proporcionar más información o consejos para abordar estos desafíos? ¡Aprecio mucho tu colaboración!
Responder Con Cita
  #6  
Antiguo 11-01-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por delphi001 Ver Mensaje
No estoy seguro de como púedo saber que tipo de tecnología(s) se encuentran aplicadas para la conexión con Firebird, pero he encontrado estos componentes en el código base:
TIBQuery (Tengo entendido se trata de IBX)
TDataSource (Tengo entendido se trata de VCL)
IB_Connection (Tengo entendido se trata de Interbase)
TIBOQuery (Tengo entendido se trata de Interbase)
DatabaseName = '192.168.1.2:Mi-BD' (La BD utilizada)
Digamos que la estructura en que se usan los componentes siempre es la misma independientemente de la tecnología.
Algo así:




1) Los 2 primeros se encargan de la conexión (y en el caso de IB/FB también de la transacción)
2) Luego tenemos el TIBTable o TIBQuery que representan TABLAS o SQLs y que se conectan a la conexión
(varios TIBTable, TIBQuery, TIBOQuery,... se pueden conectar a la misma conexión)
3) Finalmente el TDatasource que se encarga de conectar un componente visual (por ejemplo un DBGrid) con una fuente de datos (un TIBTable, TIBQuery,...)

Normalmente casi todos los componentes que se usan para Interbase (en versiones como la tuya Delphi 7) se usan también y son compatibles para conectarse a Firebird.
En cuanto al código, parece que no está completo, pero hay una parte que muestra que la llamada se puede hacer con parámetros, y el segundo parece ser la Base de Datos.

Código Delphi [-]
    //SEGUNDO parámetro: Path de la base de datos
    Case myStrIndex(sTmp,[_NomExeRun,'PALABRA']) Of
    0:begin        
        Try
          getDBPath:=ParamStr(2);          
          DatosIni:=TStringlist.Create;
          k:=Pos(':',getDBPath);
          If k=0 then
            begin
              DatosIni.Add('');
              DatosIni.Add(getDBPath);
            end
          else
            begin
              DatosIni.Add(Copy(getDBPath,1,k-1));
              DatosIni.Add(Copy(getDBPath,k+1,100));
            end;
        Except
          Raise Exception.Create(Incorrecto);
        end;
      end;


ParamStr(2) hace referencia al segunda parámetro de la llamada a tu aplicación.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 11-01-2024
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
Parece que tienes definido algún alias de la BD, puedes editarla o quitarla, si quieres.
Mira esto:
https://www.firebirdsql.org/rlsnotes...-db-alias.html
Responder Con Cita
  #8  
Antiguo 12-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Question

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Normalmente casi todos los componentes que se usan para Interbase (en versiones como la tuya Delphi 7) se usan también y son compatibles para conectarse a Firebird.
En cuanto al código, parece que no está completo, pero hay una parte que muestra que la llamada se puede hacer con parámetros, y el segundo parece ser la Base de Datos.
Gracias.

Luego cómo encuentro información que me de luz para interpretar y configurar parámetros? Entiendo que es una práctica comun usar parámetros pero no encuentro información en internet para leer al respecto.

¿Alguna información que ilumine mi andar en este grandioso recorrido?
Responder Con Cita
  #9  
Antiguo 12-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Smile

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Parece que tienes definido algún alias de la BD, puedes editarla o quitarla, si quieres.
Mira esto:
Gracias.

Ahora, cómo logro cambiar la configuración de conexión para conectarme a otra BD?

Actualmente se conecta a 192.168.1.2:Mi-BD
Ahora busco la forma de cambiar la configuración para conectarme a 192.168.1.1:DB-Test

Salud OS
Responder Con Cita
  #10  
Antiguo 12-01-2024
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 delphi001 Ver Mensaje
Gracias.
Ahora, cómo logro cambiar la configuración de conexión para conectarme a otra BD?
Actualmente se conecta a 192.168.1.2:Mi-BD
Ahora busco la forma de cambiar la configuración para conectarme a 192.168.1.1B-Test
Salud OS
Para eso te he puesto el enlace
Responder Con Cita
  #11  
Antiguo 12-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Post

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Para eso te he puesto el enlace ;)

Creo que no me explique bien...
En el enlace compartido se habla de cómo aplicar el aliasing (Database File Aliasing)... tema que ya tengo dominado. Así es como ya tengo mi 192.168.1.1:DB-Test listo y funcionando (comprobado).

Mi proyecto pascal en delphi7 actualmente se conecta a 192.168.1.2:Mi-BD

Ahora busco la forma de cambiar en el proyecto de Pascal la configuración para así lograr conectarme a 192.168.1.1:DB-Test (Pero, cuales archivos debería de buscar *.pas o *.dfm o *.ini? Ya intenté reemplazando en todos los archivos del proyecto esta cadena 192.168.1.2:Mi-BD por esta otra 192.168.1.1:DB-Test pero lamentablemente me sigue conectando a la 192.168.1.2:Mi-BD. Me da la impresión de que toma la configuración de otro lugar o incluso que el cambiar así desde código la cadena no afecta incluso posiblemente estoy omitiendo algun paso o simplemente no es la forma adecuada.

Ya se hablo arriba sobre parametros de configuración a la BD y componentes IBX, por lo que pido nombres de articulos, terminología o incluso otras urls que me iluminen para de una vez por todas manejar estas configuraciones en mi proyecto y así lograr conectarme a la BD Test.
Responder Con Cita
  #12  
Antiguo 12-01-2024
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
La ruta estará en componente de base de datos TIBDatabase, y en todo caso puede que lo cambien leyendo de algún archivo.ini pero para esto último tendríamos que ver el código del programa para poder saberlo.

EDITO:
En el código que pusiste antes se ve que hace conexión también indicando la ruta como parámetro al ejecutar el programa, y si no trae parámetro entonces lo lee de un ini.
Responder Con Cita
  #13  
Antiguo 14-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Cool

Cita:
Empezado por Casimiro Notevi Ver Mensaje
EDITO:
En el código que pusiste antes se ve que hace conexión también indicando la ruta como parámetro al ejecutar el programa, y si no trae parámetro entonces lo lee de un ini.
Gracias.

Existe algo mas de información para acortar la busqueda en todo el codigo fuente? Cómo puedo saber si se pasa como parámetro al ejecutar el programa? Tienes algún ejemplo?

Me desconecté de la red para obtener algun detalle del error cuando no existe acceso a la BD:

Código:
EurekaLog 5.0.1

## Aplicación:

1.1 Fecha de inicio     : Sat, ...
1.2 Nombre/Descripción  : App
1.3 Número de versión   : 10.0.0.0
1.4 Parámetros          : "/RunSystem.exe" "192.168.1.2:Mi-BD"
1.5 Fecha de Compilación: Sat, ...

## Excepción:

2.1 Fecha    : Sat, ...
2.2 Dirección: 00000000
2.3 Module   : App.exe
2.4 Tipo     : EIB_ISCError
2.5 Mensaje  : ISC ERROR CODE:335544721
.
ISC ERROR MESSAGE:
Unable to complete network request to host "192.168.1.2".
Failed to establish a connection.
unknown Win32 error 10060
.

## Controles Activos:

3.1 Form Class   : TfrmSplash
3.2 Form Text    : "APP"
3.3 Control Class: TfrmSplash
3.4 Control Text : "APP"

Este error se muestra cuando intencionalmente me salgo de la red.
Responder Con Cita
  #14  
Antiguo 14-01-2024
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
Creo que no acabo de entender el problema, si la BD está en 192.168.1.1 entonces cambia el 2 por un 1 (192.168.1.2)
Responder Con Cita
  #15  
Antiguo 14-01-2024
delphi001 delphi001 is offline
Registrado
 
Registrado: nov 2023
Posts: 7
Poder: 0
delphi001 Va por buen camino
Thumbs up

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que no acabo de entender el problema, si la BD está en 192.168.1.1 entonces cambia el 2 por un 1 (192.168.1.2)
Eres un genio Casimiro Notevi

Gracias totales!
Responder Con Cita
  #16  
Antiguo 14-01-2024
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 delphi001 Ver Mensaje
Eres un genio Casimiro Notevi
Eso decía mi madre

¿Entonces ese era el problema?
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
Proyecto emular procesadores usando Delphi PASCAL y Ensamblador compsystems La Taberna 0 16-12-2014 22:36:52
Free Pascal proyecto del mes de SourceForge Ñuño Martínez La Taberna 7 25-04-2014 21:45:22
Proyecto Oberon: Reimaginando todo (padre de pascal) mamcx La Taberna 1 03-12-2013 23:18:53
[Z80 Pascal] Proyecto de compilador Ñuño Martínez ASM y Microcontroladores 6 11-05-2010 14:37:47
primer proyecto con Mikro pascal no compila gaston260 ASM y Microcontroladores 15 08-01-2010 04:45:55


La franja horaria es GMT +2. Ahora son las 19:55:16.


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