FireDAC.Comp.Client.TFDCustomConnection.SharedCliHandle
Delphi
property SharedCliHandle: Pointer read FSharedCliHandle write SetSharedCliHandle;
C++
__property void * SharedCliHandle = {read=FSharedCliHandle, write=SetSharedCliHandle};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDCustomConnection |
説明
他の接続と共有される CLI ハンドル。
SharedCliHandle を使用すると、接続のその他の CliHandle プロパティによって返された、共有済み DBMS Call Level Interface 接続ハンドルを設定することができます。これは、アプリケーションから DDL へ接続を転送する際に便利です(「DLL の開発」参照)。
メモ: 共有は同じアドレス空間内でのみ機能するため、接続は別のプロセスとは共有できません。
この接続の Connected を True に設定すると、他の接続と同じ物理 DBMS 接続やセッションを使用し、さらに、同じトランザクション状態も共有します。
Connected を False に設定すると、この DLL 接続は、DBMS クライアントへの接続リソースを解放しません。アプリケーション接続は、リソースを解放する責任があります。このため、アプリケーション接続は、すべての共有接続が閉じられた後に、閉じなければなりません。
例:
//Application code (without checks):
FhDll := LoadLibrary(PChar('Project2.dll'));
@FpShowData := GetProcAddress(FhDll, PChar('ShowData'));
FpShowData(FDConnection1.CliHandle);
//DLL code:
procedure ShowData(ACliHandle: LongWord);
begin
FDConnection1.SharedCliHandle := ACliHandle;
FDConnection1.Connected := True;
FDQuery1.Active := True;
end;