他のバージョンの文書9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

第 29章ECPG - C言語による埋め込みSQL

目次
29.1. 概念
29.2. データベースサーバへの接続
29.3. 接続を閉じる
29.4. SQL コマンドの実行
29.5. 接続の選択
29.6. ホスト変数の使用
29.6.1. 概要
29.6.2. 宣言セクション
29.6.3. SELECT INTOFETCH INTO
29.6.4. 指示子
29.7. 動的 SQL
29.8. SQL記述子領域の使用
29.9. エラーの扱い
29.9.1. コールバックの設定
29.9.2. sqlca
29.9.3. SQLSTATESQLCODE
29.10. インクルードファイル
29.11. 埋め込みSQLプログラムの処理
29.12. ライブラリ関数
29.13. 内部

本章では、PostgreSQLの埋め込みSQLパッケージについて説明します。 このパッケージはCC++言語で作成されました。 作者はLinus Tolke()とMichael Meskes()です。 元々これはCで動作するように作成されました。 C++でも動作しますが、全てのC++の構文をまだ認識できません。

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

29.1. 概念

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

CコードからSQLコマンドを扱う場合は、埋め込みSQLの方が他の手法よりも有効です。 まず、埋め込みSQLはCプログラムの変数との面倒な情報移動を処理してくれます。 更に、プログラム内のSQLコードは構築時に正確な構文になっているかどうか検査されます。 また、C 言語での埋め込みSQLは標準SQLで既に定義されており、他の様々な SQLデータベースシステムでサポートされています。 PostgreSQLの実装は可能な限りこの標準に準拠するよう設計されています。 また通常の場合、他のSQLデータベース用に作成された埋め込みSQLプログラムを比較的簡単にPostgreSQLへ移植することができます。

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

EXEC SQL ...;

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

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