Hola ContraVeneno
mira.. implemente el codigo que me enviastes y me funciona bien.. aunque he tenido un problema...
Vamos por paso...
Cree un formulario para conexión con base de datos, en donde ingreso el servidor, el usuario, la clave y nombre de la base....
cuando ingreso a dicho formulario realizo esto
Código Delphi
[-]
if FileExists('D:\Sistemas\Biovial\config.ini') Then
Begin
Parametro := TiniFile.Create('D:\Sistemas\Biovial\config.ini');
vSer.Text := Parametro.ReadString('BaseDato','Servidor',' ');
vUsu.Text := Parametro.ReadString('BaseDato','Usuario',' ');
vPas.Text := Parametro.ReadString('BaseDato','Clave',' ');
vBas.Text := Parametro.ReadString('BaseDato','Base',' ');
Parametro.Free;
End
Else
ShowMessage('Debe Ingresar Información de Base de Datos para continuar');
es decir, pregunta si existe el archivo .ini.. si es así me rescata los datos y me los pasa a los Edits correspondientes... de lo contrario me envia para ingresar los datos.
Con el sgte codigo conecto la base de datos.. y esto me funciona super... y los mismos datos que ingrese los almaceno en el archivo .ini... se supone que si no esta creado el archivo .ini me lo crea, de lo contrario solo actualiza...
Código Delphi
[-]
if Datos.ADBiovial.Connected Then Datos.ADBiovial.Connected := False;
Datos.ADBiovial.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False'+
';User ID='+QuotedStr(vUsu.Text)+
';Initial Catalog='+QuotedStr(vBas.Text)+
';PassWord='+QuotedStr(vPas.Text)+
';Data Source='+QuotedStr(vSer.Text);
try
Datos.ADBiovial.Connected := True;
Parametro := TiniFile.Create('D:\Sistemas\Biovial\config.ini');
Parametro.WriteString('BaseDato','Servidor',vSer.Text);
Parametro.WriteString('BaseDato','Usuario',vUsu.Text);
Parametro.WriteString('BaseDato','Clave',vPas.Text);
Parametro.WriteString('BaseDato','Base',vBas.Text);
Parametro.Free;
ShowMessage('Base de Dato ya fue asignada');
except
ShowMessage('Error de conexión, ingrese ruta nuevamente');
vSer.SetFocus;
end
el problema se me genera cuando ingreso al sistema, lo que realizo en el Evento onCreate del formulario principal (Menu)... es lo sgte
Código Delphi
[-]
procedure TMenu.FormCreate(Sender: TObject);
Var
Parametro:Tinifile;
begin
If not DirectoryExists('D:\Sistemas\Biovial') Then
Begin
{$I-}
MkDir('D:\Sistemas\Biovial');
End;
if FileExists('D:\Sistemas\Biovial\config.ini') Then
Begin
Parametro := TiniFile.Create('D:\Sistemas\Biovial\config.ini');
Try
vSer := Parametro.ReadString('BaseDato','Servidor',' ');
vUsu := Parametro.ReadString('BaseDato','Usuario',' ');
vPas := Parametro.ReadString('BaseDato','Clave',' ');
vBas := Parametro.ReadString('BaseDato','Base',' ');
Finally
Parametro.Free;
End;
With Datos.ADBiovial Do Begin
if not Connected Then
Begin ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False'+
';User ID='+QuotedStr(vUsu)+
';PassWord='+QuotedStr(vPas)+
';Initial Catalog='+QuotedStr(vBas)+
';Data Source='+QuotedStr(vSer);
Connected := True;
ShowMessage('Base conectada');
End
End;
End
Else
Begin
ShowMessage('Debe Seleccionar Base de Datos para continuar');
Base_Conexion := TBase_Conexion.Create(Self);
Try
Base_Conexion.ShowModal;
Finally
Base_Conexion.Free;
End;
End;
end;
Bueno, esto último me genera el siguiente error...
Project Biobial.exe raised exception class EAccessViolation with message 'Access violation at address 004D5C69 in module BioBial.exe'. Read of address 00000058'.
Aunque el error siempre aparece... presiono Ok.. y se puede ejecutar el sistema ... es decir igual conecta
y realizo la compilación paso a paso el error se marca aquí
Que podra ser ??