他のバージョンの文書 : 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 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 INTO と FETCH INTO
30.6.4. 指示子
30.7. 動的 SQL
30.8. SQL記述子領域の使用
30.9. エラーの扱い
30.9.1. コールバックの設定
30.9.2. sqlca
30.9.3. SQLSTATE対SQLCODE
30.10. ヘッダファイル
30.11. 埋め込みSQLプログラムの処理
30.12. ライブラリ関数
30.13. 内部

本章では、PostgreSQLの埋め込みSQLパッケージについて説明します。 このパッケージはCとC++言語で作成されました。 作者は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文について説明します。