アプリケーション開発の手引き
ホスト言語に組み込まれた SQL ステートメントを使用して、アプリケーションを作成することができます。
SQL ステートメントはデータベース・インターフェースを提供し、一方、ホスト言語はアプリケーションの実行に必要なサポートの残りの部分を提供します。
表 2 は、ホスト言語アプリケーションに組み込まれた SQL ステートメントを示しています。この例では、更新が正常に行われたかどうかを判断するために、
SQLCA 構造の SQLCODE フィールドをアプリケーションが検査します。
表 2. ホスト言語における組み込み SQL ステートメントの使用
言語
| ソース・コード例
|
C/C++
|
EXEC SQL UPDATE staff SET job = 'Clerk' WHERE job = 'Mgr';
if ( SQLCODE < 0 )
printf( "Update Error: SQLCODE = %ld \n", SQLCODE );
|
Java (SQLJ)
|
try {
#sql { UPDATE staff SET job = 'Clerk' WHERE job = 'Mgr' };
}
catch (SQLException e) {
println( "Update Error: SQLCODE = " + e.getErrorCode() );
}
|
COBOL
|
EXEC SQL UPDATE staff SET job = 'Clerk' WHERE job = 'Mgr' END_EXEC.
IF SQLCODE LESS THAN 0
DISPLAY 'UPDATE ERROR: SQLCODE = ', SQLCODE.
|
FORTRAN
|
EXEC SQL UPDATE staff SET job = 'Clerk' WHERE job = 'Mgr'
if ( sqlcode .lt. 0 ) THEN
write(*,*) 'Update error: sqlcode = ', sqlcode
|
アプリケーションに組み込まれる SQL ステートメントは、ホスト言語固有のものではありません。データベース・マネージャーには、SQL 構文をホスト言語が処理できるように変換する機能があります。
C、C++、COBOL または FORTRAN 言語では、
DB2 プリコンパイラーによって変換されます。
DB2 プリコンパイラーは、PREP コマンドで呼び出します。プリコンパイラーは、組み込み SQL ステートメントを DB2 実行時サービス API 呼び出しに直接変換します。
Java 言語では、SQLJ プログラムは SQLJ 文節を JDBC ステートメントに変換します。
SQLJ 変換プログラムは、SQLJ コマンドで呼び出します。
プリコンパイラーはソース・ファイルを処理する際に、特に SQL ステートメントを探して処理し、非 SQL ホスト言語は無視します。
SQL ステートメントは特殊な区切り文字で囲まれているので、プリコンパイラーはこれを発見することができます。使用している言語の組み込み SQL ステートメントに必要な構文情報については、以下のページを参照してください。
表 3 は、区切り文字と注釈を使用して、サポートされているコンパイル済みホスト言語で有効な組み込み SQL ステートメントを作成する方法を示しています。
表 3. ホスト言語における組み込み SQL ステートメントの使用
言語
| ソース・コード例
|
C/C++
|
/* Only C or C++ comments allowed here */
EXEC SQL
-- SQL comments or
/* C comments or */
// C++ comments allowed here
DECLARE C1 CURSOR FOR sname;
/* Only C or C++ comments allowed here */
|
SQLJ
|
/* Only Java comments allowed here */
#sql c1 = {
-- SQL comments or
/* Java comments or */
// Java comments allowed here
SELECT name FROM employee
};
/* Only Java comments allowed here */
|
COBOL
|
* See COBOL documentation for comment rules
* Only COBOL comments are allowed here
EXEC SQL
-- SQL comments or
* full-line COBOL comments are allowed here
DECLARE C1 CURSOR FOR sname END-EXEC.
* Only COBOL comments are allowed here
|
FORTRAN
|
C Only FORTRAN comments are allowed here
EXEC SQL
+ -- SQL comments, and
C full-line FORTRAN comment are allowed here
+ DECLARE C1 CURSOR FOR sname
I=7 ! End of line FORTRAN comments allowed here
C Only FORTRAN comments are allowed here
|
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]