他のバージョンの文書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

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

目次
30.1. 概念
30.2. データベースサーバへの接続
30.3. 接続を閉じる
30.4. SQLコマンドの実行
30.5. 接続の選択
30.6. ホスト変数の使用
30.6.1. 概要
30.6.2. 宣言セクション
30.6.3. SELECT INTOFETCH INTO
30.6.4. 指示子
30.7. 動的 SQL
30.8. SQL記述子領域の使用
30.9. エラーの扱い
30.9.1. コールバックの設定
30.9.2. sqlca
30.9.3. SQLSTATESQLCODE
30.10. ヘッダファイル
30.11. 埋め込みSQLプログラムの処理
30.12. ライブラリ関数
30.13. 内部

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

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

30.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文について説明します。