Chapter 4. ECPG――C言語での埋め込みSQL

Table of Contents
4.1. 概念
4.2. データベースサーバへの接続
4.3. 接続を閉じる
4.4. SQL コマンドの実行
4.5. データを渡す
4.6. エラー処理
4.7. ファイルのインクルード
4.8. 埋め込み SQL プログラムの処理
4.9. ライブラリ関数
4.10. 他のRDBMSパッケージからの移植
4.11. 開発者向けに
4.11.1. プリプロセッサ
4.11.2. ライブラリ

この章では、PostgreSQL の埋め込み SQL パッケージについて説明します。埋め込みSQLはCC++によって動作します。 Linus Tolke()と Michael Meskes()によって書かれました。

このドキュメンテーションは完全なものではありません。 しかし、このインターフェースは標準化されており、SQL に関するその他の資料でも情報を入手することもできます。

4.1. 概念

埋め込み SQL プログラムは通常のプログラミング言語 (ここでは C) で記述されたコードで、特別にマークされたセクションにおいて SQL コマンドとともに使用されます。 このプログラムを構築するには、まずソースコードを埋め込み SQL プリプロセッサに渡します。 ソースコードは、プリプロセッサによって通常の C プログラムに変換され、その後 C コンパイルツールチェーンによって処理されます。

C コードから SQL コマンドを扱う場合は、埋め込み SQL の方が他のメソッドよりも有効です。 まず、埋め込み SQL は C プログラムの変数との面倒な情報移動を処理してくれます。 また、C 言語での埋め込み SQL は SQL 標準ですでに定義されており、他のさまざまな SQL データベースでサポートされています。 PostgreSQL の実装は可能な限りこの標準に準拠するよう設計されています。また通常の場合、ほかの RDBMS 用に書かれた埋め込み SQL プログラムを比較的簡単に PostgreSQL へ移植することができます。

先に述べたとおり、埋め込み SQL インターフェース用のプログラムは、通常の C プログラムに、データベース関連のアクションを行うための特別なコードを加えたものです。 特別のコードとは、次のような形式になっています。

EXEC SQL ...;

この文は、構文上で C 文の置き換えとなります。 文によっては、グローバルコンテキスト、または関数内に現れることもあります。 埋め込み SQL 文における大文字小文字の区別の有無は、C コードではなく、通常の SQL コードのルールに従います。

以下の節で、すべての埋め込み SQL 文について説明します。