Symfoware(R) Server SQLビギナーズガイド - FUJITSU -
目次 索引 前ページ次ページ

上へ第7章 応用プログラムの実行時に動的SQL文を実行する方法
上へ7.2 SQL文を動的に変更して実行する
上へ7.2.1 SQL文の準備とSQLDA構造体の操作

7.2.1.2 動的単一行SELECT文を準備して実行する(SQLDA構造体の場合)

1行のデータの取り出しを行う場合には、動的単一行SELECT文を準備して実行します。動的単一行SELECT文を実行するには、USING句を指定したEXECUTEを使用します。SQLDA構造体を使用して、動的単一行SELECT文の指定例を以下に示します。なお、SQLDA構造体を操作するSQL文の詳細については、“図:被準備文の実行結果の取り出し手順”の例を参照してください。

端末から入力した動的単一行SELECT文の例です。
             :
    [端末から入力した動的単一行SELECT文をstrに格納]
             :
EXEC SQL PREPARE STMID FROM :str;
size = sizeof(SQLDA) + sizeof(sqlvar) * (100 - 1);
sqlda_out = (SQLDA *)malloc(size);
EXEC SQL DESCRIBE OUTPUT STMID USING SQL DESCRIPTOR :sqlda_out; 
ocount = sqlda_out->SQLD;
for( i = 0; i < ocount; i++) {
  vartype = sqlda_out->SQLVAR[i].SQLTYPE;
  varleng = sqlda_out->SQLVAR[i].SQLLEN;
             :
    [選択リストの情報をSQLDA構造体から取得]
             :
  sqlda_out->SQLVAR[i].SQLTYPE = 1;
  sqlda_out->SQLVAR[i].SQLLEN = 14;
             :
    [SQLDA構造体の選択リストの情報を変更]
             :
}
EXEC SQL EXECUTE STMID INTO SQL DESCRIPTOR :sqlda_out;
             :
    [実行結果の値の取得]
             :
free( sqlda_out );
EXEC SQL DEALLOCATE PREPARE STMID;
             : 

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003