コンセプト

C のプログラム作成には少し独特な SQL を使います. 変数を SQL 文の中で使えるよう宣言するには, その変数を特別な宣言セクションに置かなければなりません. また SQL の問い合わせに関しても特別な文法を使います.

まずコンパイルに先立って,ファイルを埋め込み SQL C プリプロセッサに通します.このプリプロセッサは使われている SQL 文を,変数を引数にした関数呼び出しに変換します. ここでは SQL 文への入力に使われている変数と, 結果を格納する変数の両方が渡されます.

次にコンパイルを実行します. リンクする時には使用する関数を含む専用ライブラリをリンクします. これらの関数は(実際には一つの関数だけなのがほとんどですが) 引数から情報を取り出し,通常のインターフェース(libpq) を使って SQL の問い合わせを実行し, 結果を出力用に割り当てた引数に戻します.

続いてプログラムを実行します.制御が SQL 文に到達すると, データベース上で SQL 文が実行されます. プログラムはその結果に基づいて処理を続けてゆくことができます.