uses dialogs, Forms, Vcl.Controls, inifiles, unit2;
{$R *.dfm}
function TDMConnection.ConfigurarDBConnection: Boolean;
var
FormConfig:TFormDBConfig;
begin
FormConfig:=TFormDBConfig.create(application);
try
FormConfig.showModal;
Result:=(FormConfig.modalResult=mrOk);
finally
FormConfig.free
end;
if result then
SaveDBConfig;
end;
procedure TDMConnection.DataModuleDestroy(Sender: TObject);
begin
ZConnection1.Disconnect;
end;
function TDMConnection.DBConectar: Boolean;
var
intento:LongInt;
begin
intento:=0;
if loadDBConfig then
repeat
try
ZConnection1.Connect;
except
On E:Exception do
MessageDlg(E.message, mtError, [mbOK], 0);
end;
inc(intento);
until ZConnection1.Connected or (intento>=3) or not ConfigurarDBConnection;
end;
function TDMConnection.loadDBConfig: Boolean;
var
ConfigFile:TIniFile;
ASection:String;
begin
Result:=False;
ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
with ZConnection1 do begin
ASection:=ZConnection1.Name;
Database := ConfigFile.ReadString(ASection, 'database', database);
Catalog := DataBase;
HostName := ConfigFile.ReadString(ASection, 'HostName', HostName);
Port := ConfigFile.ReadInteger(ASection, 'Port', Port);
protocol := ConfigFile.ReadString(ASection, 'protocol', protocol);
LibraryLocation:= ConfigFile.ReadString(ASection, 'LibraryLocation', LibraryLocation);
User := ConfigFile.ReadString(ASection, 'User', User);
password := ConfigFile.ReadString(ASection, 'password', password);
Result:=true;
end;
finally
ConfigFile.Free;
end;
end;
function TDMConnection.SaveDBConfig: Boolean;
var
ConfigFile:TIniFile;
ASection:String;
begin
Result:=False;
ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
with ZConnection1 do begin
ASection:=ZConnection1.Name;
ConfigFile.WriteString(ASection, 'database', database);
ConfigFile.WriteString(ASection, 'HostName', HostName);
ConfigFile.WriteInteger(ASection, 'Port', Port);
ConfigFile.WriteString(ASection, 'protocol', protocol);
ConfigFile.WriteString(ASection, 'LibraryLocation', LibraryLocation);
ConfigFile.WriteString(ASection, 'User', User);
ConfigFile.WriteString(ASection, 'password', password);
Result:=true;
end;
finally
ConfigFile.Free;
end;
end;
Y para usarlo solo es necesario poner
Código Delphi [-]
if not DMConnection.DBConectar then begin
MessageDlg('No ha sido posible conectarse a la BBDD', mtError, [mbOK], 0);
exit;
end;
MessageDlg('Conexion OK', mtInformation, [mbOK], 0)