2019年4月1日月曜日
SQLCLI について(「select」SQLステートメントの実行2)
a.の方法で行を処理するには
1. 環境ハンドルの取得(SQLAllocEnvまたはSQLAllocHandle)
2. 環境ハンドル内で接続ハンドルの取得(SQLAllocConnectまたはSQLAllocHandle)
3. データベースへの接続(SQLConnect)
4. 接続ハンドルからステート・メントハンドルの取得(SQLAllocStmtまたはSQLAllocHandle)
5. ステートメント・ハンドルに対して「select」SQL文を指定(SQLPrepare)
6. SQL文にパラメータ・マーカが含まれる時は、パラメータ用変数のバインド(SQLBindParameter)
7. SQL文にパラメータ・マーカが含まれる時は、パラメータ用変数に値を設定
8. SQL文の実行(SQLExecuteまたはSQLExecDirect)
9. カラムにプログラム変数を割り当てる(SQLBindCol)
10. 戻り値がSQL_NO_DATA(=100)になるまで「fetch」SQL文の実行(SQLFetch)
11. カラムに割り当てたプログラム変数の内容に従った処理
12. ステートメント・ハンドルの解放(SQLFreeStmtまたはSQLFreeHandle)
13. データベースの切断(SQLDisconnect)
14. 接続ハンドルの解放(SQLFreeConnectまたはSQLFreeHandle)
15. 環境ハンドルの解放(SQLFreeEnvまたはSQLFreeHandle)
SQL文にパラメータ・マーカが無い時は、5~7を省略して、8.でSQL文をSQLExecDirectで実行します。
9.でカラムにSQLBindCol APIを使用してプログラム変数を割り当てる時、SQLCLIには、ゾーン10進数(RPGLEのデータ・タイプS)に対応するSQLデータ・タイプがありませんので、ソーン10進数カラムに対しては、文字変数を割り当てて、RPGLE内のロジックで、カラムの値を使用する時に、%dec関数等で10進数に変換して使用します。
必要があれば、小数点以下の桁数は、SQLDescribeCol APIで取得することができます。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿