Symfoware(R) Server SQLビギナーズガイド - FUJITSU - |
目次 索引 |
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; :
目次 索引 |