Copyright 1999 (c) Takezou
<目次>
PQコンポを使用するためには以下の環境設定が必要です。
実際に必要とするファイルは、PQCompo.pas,libpq_fe.pas,PQCompo.dcrの3つです。これらのファイルを適当なフォルダにコピーして、適当なパッケージを作成してインストールすれば、PQCompoが使用できるようになります。実行時には、libpq.dllを別途入手して、パスの通っているフォルダ(c:\windows\system等)にコピーする必要があります。また、サーバに対して、名前解決ができている必要があります(WindowsNTの場合はIPアドレスでもホストを指定できます)。
サーバ側にはもちろんPostgreSQLサーバが稼動していることが前提条件になります。また、クライアントに対して適当なアクセス権を与えている必要があります。これらについての詳細は、PostgreSQLのドキュメントまたは解説本を参考にしてください。
全体的な処理の流れは以下のようになります。
データベースへの接続はOpenメソッドで行います。Openメソッドを実行する前に必要なプロパティ(ホスト名、ユーザ名、パスワード、接続先データベース)を指定しておく必要があります。接続に失敗した場合は例外が発生します。
文の実行はExecSQLメソッドで行います。OracleのOCIでは複数の文を一度に実行できますが、libpqは文を一つずつしか実行できないため、たとえば
BEGIN;
DECLARE mycursor CURSOR FOR select * from pg_database;
FETCH ALL in mycursor;
COMMIT;
という一連のコマンドを実行する場合は、一文づつ4回のExecSQL文を実行する必要があります。実行に失敗した場合は例外を返します。実行には成功したが、警告(Warning)がある場合はメッセージがResultMessageプロパティに入ります。
また、OnNoticeMessageイベントを設定することで、通知メッセージ(エラー詳細)を受け取ることができます。
結果セットの受け取りはGetResultsetメソッドで行います。通常は
var
Resultset: TPQResultset;
というような形で結果セットを定義しておき、
Resultset := PQCompo1.GetResultset;
のようにして結果セットを受け取ります。
結果セットからのデータの取り出しは、
Resultset.FieldByName('FIELD_NAME').AsString または
Resultset.Fields[n].AsString
という形で行います。
また、First,Next,Lastメソッドで結果セット内を移動できるので、
while not Resultset.EOF do
begin
A := Resultset .Fields[0].AsString;
B := Resultset .Fields[1].AsString;
Resultset.Next;
end;
というようにして結果セット内のデータを取り出すことができます。また、結果セットは、接続が終わるまで保持されるので、必要がなくなった結果セットはFreeメソッドを呼び出して明示的に開放してやることでリソースを節約できます。
接続の終了はCloseメソッドで行います。受け取った結果セットはこの時点で全て自動的に開放されます。
完成したアプリケーションの配布は、.exeファイルとlibpq.dllをコピーするだけで、他には一切必要ありません。
<戻る>