Advertisement
alexsystem

Conexao FireDac Delphi

Sep 8th, 2018
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.38 KB | None | 0 0
  1. function TMinhaClasse.ConectarApp: Boolean;
  2. var
  3.   ini                                                           : TIniFile;
  4.   FileName, aIPServidor, aPathServidor, sIPServidor, aPorta, sPathServidor: String;
  5. begin
  6.   Result := Conectado; // Apenas uma variável para guardar o estado
  7.   if (Conectado = False) then
  8.   begin
  9.     FConexao.Connected := False;
  10.         {Declarando o caminho do arquivo INI}
  11.     FileName := Format('%sConexao.ini', [ExtractFilePath(ParamStr(0))]);
  12.     if FileExists(FileName) then
  13.     begin
  14.             {
  15.             Considerando os abjetos:
  16.            
  17.             FDGUIxWaitCursor: TFDGUIxWaitCursor;
  18.             FBDriverLink    : TFDPhysFBDriverLink;
  19.             FConexao        : TFDConnection;
  20.            
  21.             }
  22.            
  23.             {
  24.                 Conteúdo do arquivo INI:
  25.                
  26.                  [CONEXAO]
  27.             IP_SERVIDOR=127.0.0.1
  28.             PORTA=3050
  29.             BASE_DADOS=C:\suapasta\SeuBanco.FDB
  30.  
  31.            
  32.             }
  33.       ini           := TIniFile.Create(FileName);
  34.       sIPServidor   := UpperCase(ini.ReadString('CONEXAO', 'IP_SERVIDOR', ''));
  35.       sPathServidor := UpperCase(ini.ReadString('CONEXAO', 'BASE_DADOS', ''));
  36.       aPorta        := UpperCase(ini.ReadString('CONEXAO', 'PORTA', ''));
  37.       ini.Free;
  38.  
  39.       FConexao.Params.Clear;
  40.       FConexao.Params.Add('DriverID= FB');
  41.       FConexao.Params.Add('Server=' + sIPServidor);
  42.       FConexao.Params.Add('Port=' + aPorta);
  43.       FConexao.Params.Add('Database=' + sPathServidor);
  44.       FConexao.Params.Add('User_Name=SYSDBA');
  45.       FConexao.Params.Add('Password=masterkey');
  46.       FConexao.Params.Add('Protocol=TCPIP');
  47.       FConexao.Params.Add('CharacterSet=WIN1252');
  48.       FConexao.Params.Add('ExtendedMetadata=True');
  49.       FConexao.Params.Add('RoleName=RoleName');
  50.       FConexao.DriverName  := 'FB';
  51.       FConexao.LoginPrompt := False;
  52.       FConexao.UpdateOptions.CountUpdatedRecords := False;
  53.  
  54.       FBDriverLink.Embedded := False;
  55.       FBDriverLink.DriverID := 'FB';
  56.             {Se for usar fora do Windows, ignore esta verificação que faço via outra unit
  57.             onde tenho uma função para isto a: "VerificarX64"
  58.             Segue a sua declaração:
  59.            
  60.             ************************************************************
  61.             function VerificarX64: Boolean;
  62. const
  63.   PROCESSOR_ARCHITECTURE_INTEL = $0000;
  64.   PROCESSOR_ARCHITECTURE_IA64 = $0006;
  65.   PROCESSOR_ARCHITECTURE_AMD64 = $0009;
  66.   PROCESSOR_ARCHITECTURE_UNKNOWN = $FFFF;
  67. var
  68.   xSysInfo: TSystemInfo;
  69. begin
  70.   GetNativeSystemInfo(xSysInfo);
  71.   case xSysInfo.wProcessorArchitecture of
  72.     PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_IA64:
  73.       Result := True;
  74.   else
  75.     Result := False;
  76.   end;
  77. end;
  78.         ************************************************************       
  79.             }
  80.       if VerificarX64 then
  81.       begin
  82.         FBDriverLink.Release;
  83.         FBDriverLink.VendorLib := ('C:\Program Files (x86)\Firebird\Firebird_2_5\bin\fbclient.dll');
  84.       end
  85.       else
  86.       begin
  87.         FBDriverLink.Release;
  88.         FBDriverLink.VendorLib := ('C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll');
  89.       end;
  90.  
  91.  
  92.  
  93.     end
  94.     else
  95.     begin
  96.             {Aqui vc chama a mensagem de erro. No meu caso tenho um Form personalizando esta mensagem}
  97.       dlgForm := TdlgForm.Create(nil);
  98.       dlgForm.updateMSG('Falha na inicialização do arquivo: Conexao.ini');
  99.       dlgForm.ShowModal;
  100.     end;
  101.  
  102.   end;
  103.   try
  104.         FConexao.Connected := True;
  105.         Result := True;
  106.       except
  107.         Result := False;
  108.       end;
  109.       Conectado := Result;
  110. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement