unit uConexionBD; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, cxShellBrowserDialog, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, DB, IBDatabase, uFrameConfiguracion, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust, dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue; type TfrConexionBD = class(TFrameConfiguracion) GroupBox1: TGroupBox; edtServer: TEdit; edtPort: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; bProbar: TButton; Label4: TLabel; edtUser: TEdit; Label5: TLabel; edtPassword: TEdit; Bevel1: TBevel; OpenDialog: TOpenDialog; edtPath: TcxButtonEdit; IBDatabase: TIBDatabase; procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure bProbarClick(Sender: TObject); procedure edtPortExit(Sender: TObject); protected procedure Finalize; override; public procedure Init; override; end; implementation uses uDataModuleServer; {$R *.dfm} procedure TfrConexionBD.cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if OpenDialog.Execute then edtPath.Text := OpenDialog.FileName; end; procedure TfrConexionBD.bProbarClick(Sender: TObject); var Aux : string; begin with IBDatabase do begin Connected := False; DatabaseName := edtServer.Text + '/' + edtPort.Text + ':' + edtPath.Text; LoginPrompt := False; Params.Clear; Params.Add('lc_ctype=ISO8859_1'); Params.Add('user_name=' + edtUser.Text); Params.Add('password=' + edtPassword.Text); try Connected := True; Application.MessageBox('Conexión válida con la base de datos.', 'FactuGES', MB_OK); Connected := False; except on E : Exception do begin Aux := 'No se ha podido establecer la conexión con la base de datos.' + #13 + #10 + #13 + #10 + PChar(E.Message); Application.MessageBox(PAnsiChar(Aux), 'Error', MB_OK); end; end; end; end; procedure TfrConexionBD.Init; begin edtServer.Text := dmServer.FDBServer; edtPort.Text := dmServer.FDBPort; edtPath.Text := dmServer.FDBPath; edtUser.Text := dmServer.FDBUser; edtPassword.Text := Decrypt(dmServer.FDBPass); end; procedure TfrConexionBD.Finalize; begin dmServer.FDBServer := edtServer.Text; dmServer.FDBPort := edtPort.Text; dmServer.FDBPath := edtPath.Text; dmServer.FDBUser := edtUser.Text; dmServer.FDBPass := Encrypt(edtPassword.Text); end; procedure TfrConexionBD.edtPortExit(Sender: TObject); begin inherited; if Length(edtPort.Text) = 0 then edtPort.Text := DBSERVER_PORT; end; end.