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 03-10-2021
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Poder: 14
darkamerico Va por buen camino
Wink Realizar UniDAC Conexión por código

Saludos estimados amigos, un saludo a todos, aquí nuevamente con una duda cuasi existencial...
Sucede que en mis aplicaciones deseo usar un archivo INI con los siguientes valores:


Tengo el componente colocado en mi DataModule con los datos en blanco:


El problema surge cuando deseo efectivamente utilizar los valores del INI y pasarlos al componente TUniConection, esto lo realizo en el evento OnCreate del Formulario de Login:

Código Delphi [-]
procedure TfrmLogin.FormCreate(Sender: TObject);
begin
  if FileExists(ChangeFileExt(Application.ExeName,'.ini')) then
  begin
    ServerIP:=trim(Ini.GetStrValue('SERVER','SERVER_IP'));
    ServerPort:=trim(Ini.GetStrValue('SERVER','SERVER_PORT'));
    ServerDB:=trim(Ini.GetStrValue('SERVER','SERVER_DB'));
    ServerUser:=trim(Ini.GetStrValue('SERVER','SERVER_USER'));
    ServerPWD:=trim(Ini.GetStrValue('SERVER','SERVER_PWD'));
  end
  else
  begin
    Ini.SetStrValue('SERVER','SERVER_IP','localhost');
    Ini.SetStrValue('SERVER','SERVER_PORT','1433');
    Ini.SetStrValue('SERVER','SERVER_DB','IEGESTIONA');
    Ini.SetStrValue('SERVER','SERVER_USER','sa');
    Ini.SetStrValue('SERVER','SERVER_PWD','18159421');
    ServerIP:=Ini.GetStrValue('SERVER','SERVER_IP');
    ServerPort:=Ini.GetStrValue('SERVER','SERVER_PORT');
    ServerDB:=Ini.GetStrValue('SERVER','SERVER_DB');
    ServerUser:=Ini.GetStrValue('SERVER','SERVER_USER');
    ServerPWD:=Ini.GetStrValue('SERVER','SERVER_PWD');
  end;

  dmMain.conn.LoginPrompt:=false;
  dmMain.conn.Server:=ServerIP;
  dmMain.conn.Port:=StrToInt(ServerPort);
  dmMain.conn.Database:=ServerDB;
  dmMain.conn.Username:=ServerUser;
  dmMain.conn.Password:=ServerPWD;
  dmMain.conn.connected := True;
end;

El error que obtengo cuando corro paso a paso la aplicación se muestra a continuación:


Nota:
Estoy usando Delphi Enterprise 10.3.2 y UniDAC 8.2.5

Amigos, al cambiar todo el bloque de código de OnCreate() hacia OnActivate() obtengo este error aun antes de siquiera llegar a la primera linea:


Gracias anticipadas compañeros por la ayuda

Última edición por Casimiro Notevi fecha: 03-10-2021 a las 19:37:47.
Responder Con Cita
  #2  
Antiguo 03-10-2021
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Me suena a qué no está creado el datamodule
Responder Con Cita
  #3  
Antiguo 05-10-2021
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Hola, si no me equivoco el puerto debe ser integer.
__________________
Suerte
Alejandro
Responder Con Cita
  #4  
Antiguo 06-10-2021
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Poder: 14
darkamerico Va por buen camino
Arrow Gracias por responder

Amigos míos, no he podido dar con la solución a este problema.
Reproducí esta situación en un proyecto vacío, solo con un INI y un DataModule y si funcionó, pero aquí no se que pasa...

Atte.
Americo
Responder Con Cita
  #5  
Antiguo 06-10-2021
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por luisgutierrezb Ver Mensaje
Me suena a qué no está creado el datamodule
Cita:
Empezado por darkamerico Ver Mensaje
Amigos míos, no he podido dar con la solución a este problema.
Reproducí esta situación en un proyecto vacío, solo con un INI y un DataModule y si funcionó, pero aquí no se que pasa...
¡Hola, darkamerico!

¿Verificaste lo que indica luisgutierrezb, que el datamodule esté creado en el momento de inicializarlo?

Según el código que nos compartes, estás configurando la conexión en el FormCreate. Pero si el datamodule no ha sido creado para ese momento, te generará el error de memoria que muestras.

Puede que esté así en tu proyecto:

Código Delphi [-]
  Application.CreateForm(TfrmLogin, frmLogin); //Aquí ejecuta el TfrmLogin.FormCreate y genera error
  Application.CreateForm(TdmMain, dmMain);

Podrías verificar que primero sea creado el DataModule

Código Delphi [-]
  //Se crea el datamodule
  Application.CreateForm(TdmMain, dmMain); 

  //Ejecuta el TfrmLogin.FormCreate y configura la conexión
  Application.CreateForm(TfrmLogin, frmLogin);
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
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
Conexión SSL TUniConection, Devart UniDAC wilcg Conexión con bases de datos 0 29-04-2020 06:16:27
Como realizar una conexion a una BD existente Broca_Lic Conexión con bases de datos 5 24-11-2009 00:34:38
nesecito un Realizar EXE mediante codigo limbertx Varios 8 21-10-2007 23:40:32
Realizar una conexion FTP mediante Delphi KeyMan Varios 21 24-09-2007 15:45:46
Como realizar la conexion con Postgres SQL alastor PHP 2 14-08-2006 21:07:18


La franja horaria es GMT +2. Ahora son las 16:14:02.


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