フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: ZeosDBO で PostgreSQL に接続する
DEKO
管理者
投稿数: 2651
ZeosDBO で PostgreSQL に接続する
on: 2013/09/22 03:06 Sun

ZeosDBO で PostgreSQL に接続する

コードで書くとこんな感じです。

uses
..., ZConnection, ZDataset, ZCompatibility;

procedure TForm1.Button1Click(Sender: TObject);
var
DBC: TZConnection;
QRY: TZQuery;
begin
DBC := TZConnection.Create(Self);
QRY := TZQuery.Create(Self);
try
// TZConnection
DBC.Protocol := 'postgresql';
DBC.HostName := 'localhost';
DBC.Port := 5432;
DBC.Database := 'test';
DBC.User := 'postgres';
DBC.Password := 'postgres';
DBC.ControlsCodePage := cCP_UTF16;
DBC.UTF8StringsAsWideField := True;
with DBC.Properties do
begin
Values['application_name'] := Application.Title;
end;
// TZQuery
QRY.Connection := DBC;

DBC.Connect;
if DBC.Connected then
begin
QRY.SQL.Text := 'SELECT * FROM public.tbl_detail';
QRY.Open;
while not QRY.Eof do
begin
// ...
QRY.Next;
end;
QRY.Close;
DBC.Disconnect;
end;
finally
QRY.Free;
DBC.Free;
end;
end;

 
Zeos.inc 中で POSTGRESQL_STRICT_DLL_LOADING が指定されていると、以下の名前の DLL を読みに行きます (Protocol: DLL 名)。

  • postgresql: libpq.dll
  • postgresql-7: libpq74.dll
  • postgresql-8: libpq81.dll
  • postgresql-9:libpq.dll

指定されていなければ、Protocol が (PostgreSQL の) 何であっても libpq.dll を読みに行きます。
※ デフォルトでは POSTGRESQL_STRICT_DLL_LOADING はオフです (ピリオドでコメントアウトされています)。

Properties に渡せるパラメータは以下の通りです。

  • beginreq=[yes,no]: トランザクション開始に BEGIN が必要か?
  • oidasblob=[yes,no]: OID 型は BLOB か、それとも Integer か?
  • timeout=<秒>: コネクションタイムアウトまでの時間 (秒)
  • codepage=<クライアントコードページ>
  • sslmode=[disable, allow, prefer, require]: disable=非 SSL 接続のみ試行。allow=最初に非 SSL 接続を試行。失敗の場合、SSL 接続を試行。prefer=最初に SSL 接続を試行。失敗の場合、非 SSL 接続を試行。require=SSL 接続のみ試行。
  • requiressl=[0, 1]: 非推奨のパラメータ。sslmode を使ってください。
  • application_name=<アプリケーション名>: 指定しておくとログ等にこの名前が残る

詳しくは /doc/html フォルダ内の parameters.html を参照してください。但しこのドキュメントは古い (2008/05 時点) ので、正確な仕様についてはソースコードを確認する事をオススメします。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.027 sec.