2012-04-18 3 views
7

저는 Delphi XE Professional을 가지고 있습니다. 연결 풀링 지원을 포함하는 DBXPool 장치를 포함하여 상당량의 DBX 항목이 포함되어 있지만 XE Enterprise에 포함 된 완전한 DBX 지원은 없습니다. 특히 많은 디자인 타임 지원은 존재하지 않습니다.코드에서 DBX 연결 풀링은 어떻게 설정합니까?

저는 특히 신경 쓰지 않습니다. 연결 풀링이 필요할 때까지 필자가 필요로했던 모든 것을 할 수있었습니다. 지금 나는 그것을 작동 시키려고 노력하고있다. 그리고 나는 그것이 작동하게하는 방법을 꽤 이해할 수 없다. 내 프로그램에 DBXPool을 추가하고 초기화하는지 확인하지만 데이터베이스 요청을 시작할 때 TDBXPoolConnection.Create은 호출되지 않습니다.

다음은 BeforeConnect 이벤트 처리기의 연결 설정 코드입니다. 누구나 내가 뭘 잘못하고 어떻게 그것을 올바르게 얻는 지 알아?

procedure TMyDataModule.connectionBeforeConnect(Sender: TObject); 
begin 
    connection.DriverName := 'Firebird'; 
    connection.Params.Values['User_Name'] := FUserName; 
    connection.Params.Values['Password'] := FPassword; 
    connection.Params.Values['Database'] := FDatabasePath; 
    connection.Params.Values['ServerCharSet'] := 'UTF8'; 
    connection.Params.values['DelegateName'] := 'DBXPool'; 
    connection.Params.values['DelegateConnection.MaxConnections'] := '32'; 
end; 

편집 : 경우 사람이 앞으로이 건너 와서 같은 문제가, 여기에 내가 그것을 잘 작동하도록을 설정했다 방법입니다. 위의 마지막 두 줄 대신에

connection.Params.values['DelegateConnection'] := 'DBXPoolConnection'; 
connection.Params.values['DBXPoolConnection.DriverName'] := 'DBXPool'; 
connection.Params.values['DBXPoolConnection.MaxConnections'] := '32'; 

나를 올바른 코스에 올려 주셔서 감사합니다!

+0

이 제품이 XE Pro와 함께 제공되는 동안 작동하지 않을 수 있습니다 (DBX 라이브러리/dll이이 SKU에서이 기능을 사용할 수 없기 때문에 가능합니까?) –

+0

비슷한 느낌을주는 적이 없었지만 'v read "DelegateConnection"매개 변수를 기억합니다. [Here] (http://docwiki.embarcadero.com/RADStudio/en/Connection_Pooling_%28Delegate_Drivers_tutorial%29)에는 'DBXPoolConnection'이 지정되어야한다고 나와 있습니다. –

+0

@Sertac : 아하! 그게 내가 놓친거야. 나는 그것을 읽을 것이지만, 어떤 부분이 어디에 적용되었는지는 확실하지 않았다. 나는 지금 일하고있다. 감사! 답변을 게시하면 받아 들일 것입니다. –

답변

4

DBXPoolConnection ~ DelegateConnection 매개 변수를 설정해야합니다.

참조 : Connection Pooling.