Symfoware Server SQLビギナーズガイド - FUJITSU -
|
目次
索引
|
7.3.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_in = (SQLDA *)malloc(size);
sqlda_out = (SQLDA *)malloc(size);
EXEC SQL DESCRIBE INPUT STMID USING SQL DESCRIPTOR :sqlda_in;
EXEC SQL DESCRIBE OUTPUT STMID USING SQL DESCRIPTOR :sqlda_out;
icount = sqlda_in->SQLD;
for( i = 0; i < icount; i++ ){
vartype = sqlda_in->SQLVAR[i].SQLTYPE;
varleng = sqlda_in->SQLVAR[i].SQLLEN;
:
[動的パラメタ指定の情報をSQLDA構造体から取得]
:
sqlda_in->SQLVAR[i].SQLTYPE = 1;
sqlda_in->SQLVAR[i].SQLLEN = 14;
:
[端末から入力した動的パラメタ指定の値をSQLDA構造体に設定]
:
}
ocount = sqlda_in->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
USING SQL DESCRIPTOR :sqlda_in;
EXEC SQL GET DESCRIPTOR 'OUTDESC' VALUE :i
:
[実行結果の値の取得]
:
free( sqlda_in );
free( sqlda_out );
EXEC SQL DEALLOCATE PREPARE STMID;
: |
All Rights Reserved, Copyright (C) 富士通株式会社 2007