Delphi [FireDac] FDConnection 데이터베이스 Connection 설정
2017.09.01 16:50
연결 정의(Connection Definition)는 특정 FireDAC 드라이버를 사용하여 DBMS에 응용 프로그램을 연결하는 방법을 정의하는 매개 변수 집합입니다.
BDE 별칭, ADO UDL (저장된 OLEDB 연결 문자열) 또는 ODBC 데이터 원본 이름 (DSN)과 동일합니다.
FireDAC은 3 가지 연결 정의 종류를 지원합니다.
- Persitent : 고유 한 이름을 가지며 FDManager에 의해 관리되고 연결 정의 파일에 저장됩니다.
- Private : FDManager에 의해 관리되지만 연결 정의 파일에는 저장되지 않는 고유 한 이름을 가집니다.
- Temporary : 이름이 없으며 연결 정의 파일에 저장되지 않고 FDManager에서 관리하지 않습니다. 설계시점에 TFDConnection.Params 속성을 채우는 것입니다.
연결 정의 (Connection Definntion) 이름
지속적 연결(Persistent Connection) 정의는 INI 텍스트 파일 형식인 외부 파일에 저장됩니다. FDExplorer 또는 FDAdministrator 유틸리티를 사용하여 처음, 수동으로 또는 코드별로 편집 할 수 있습니다.
기본적으로 파일은 C : \ Users \ Public \ Documents \ Embarcadero \ Studio \ FireDAC \ FDConnectionDefs.ini입니다.
참고: RAD Studio IDE가 실행 중일 때 FDExplorer 또는 FDAdministrator를 사용하여 새로운 영구 연결 정의를 추가하면 FireD AC 디자인 타임 코드에 표시되지 않습니다. 영구 연결 정의 목록을 새로 고치려면 FDManager를 다시 활성화하거나
RAD Studio IDE를 다시 시작해야 합니다.
Persistent Connection 생성
uses
FireDAC.Comp.Client, FireDAC.Stan.Def, FireDAC.Stan.Intf,
// Required uses for creating a persistent connection with MSSQL (to fdconnectiondefs.ini)
FireDAC.Phys.MSSQL,
FireDAC.Phys.MSSQLDef;
const
cNameConnDef = 'MSSQL_Connection';
procedure TForm1.PersistentConnectionClick(Sender: TObject);
var
oDef: IFDStanConnectionDef;
oParams: TFDPhysMSSQLConnectionDefParams; // MSSQL connection params
begin
// Adding new persistent connection to fdconnectiondefs.ini
FDManager.ConnectionDefs.AddConnectionDef;
oDef := FDManager.ConnectionDefs.AddConnectionDef;
oDef.Name := cNameConnDef;
oParams := TFDPhysMSSQLConnectionDefParams(oDef.Params);
oParams.DriverID := 'MSSQL'
oParams.Database := 'Northwind';
oParams.UserName := '.............';
oParams.Password := '.............';
oParams.Server := '127.0.0.1';
oParams.OSAuthent := false;
oParams.MARS := false;
oDef.MarkPersistent;
oDef.Apply;
end; .....................
procedure TForm1.ConnectionClick(Sender: TObject);
FDConnection1.ConnectionDefName := cNameConnDef;
FDConnection1.Connected := True;
end;
|
Private 컨넥션 정의
전용 연결 정의는 코드에서만 만들 수 있습니다.
var
oParams: TStrings; begin oParams := TStringList.Create; oParams.Add('Server=127.0.0.1'); oParams.Add('Database=Northwind'); oParams.Add('OSAuthent=Yes'); FDManager.AddConnectionDef('MSSQL_Connection', 'MSSQL', oParams); .................... FDConnection1.ConnectionDefName := 'MSSQL_Connection'; FDConnection1.Connected := True;
|
임시 커넥션 정의
<설계시점>
임시 연결 정의는 FireDAC Connection Editor를 사용하여 디자인 타임에 생성 할 수 있습니다. TFDConnection을 두 번 클릭하여 편집기를 호출하십시오.
또는 디자인 모드에서 TFDConnection 아이콘을 클릭하고 Object Inspector의 DriverName 속성에서 드라이버를 선택하십시오. 그런 다음 Params 속성을 확장하고 필요한 속성을 설정합니다. 마지막 단계는 Connected 속성을 True로 설정하는 것입니다.
<런 타임시>
코드에서 런타임에 임시 연결을 만들려면 TFDConnection.Params 속성을 채 웁니다. 이것은 연결 정의를 만드는 가장 간단하고 편리한 방법입니다.
FDConnection1.DriverName := 'MSSQL'; FDConnection1.Params.Add('Server=127.0.0.1'); FDConnection1.Params.Add('Database=Northwind'); FDConnection1.Params.Add('User_name=sa'); FDConnection1.Connected := True;
|
런타임에 임시 연결 정의를 만드는 또 다른 방법은 TFDConnection.Params 속성을 DBMS 특정 클래스로 캐스팅하는 것입니다. IDE 코드 통찰력 및 컴파일러 구문 검사를 사용하여 정확성을 검사 할 수 있으므로 연결 정의를 만드는 가장 안전한 방법입니다.
uses
FireDAC.Phys.IBDef, FireDAC.Phys.IBWrapper; ...... FDConnection1.DriverName := 'IB'; with FDConnection1.Params as TFDPhysIBConnectionDefParams do begin Protocol := ipTCPIP; Server := '127.0.0.1'; Database := 'c:\IB\employee.gdb'; UserName := 'sysdba'; Password := 'masterkey'; end; FDConnection1.Connected := True;
|
또 다른 옵션은 TFDConnection.ConnectionString 속성을 채워 런타임에 연결 문자열을 지정하는 것입니다. 연결 문자열은 특정 유형의 응용 프로그램에 대한 연결 정의 매개 변수를 지정하는 편리한 방법 일 수 있습니다.
FDConnection1.ConnectionString := 'DriverID=MSSQL;Server=127.0.0.1;Database=Northwind;User_name=sa';
FDConnection1.Connected := True;
|