SELECT 文を使用すると、データベースから情報を取り出すことができます。SELECT 文を実行すると、PreparedStatement.ExecuteQuery メソッドは ResultSet オブジェクトを返します。
次のコードを使用して、必要な変数を宣言します。
ULPreparedStatement * prepStmt; ULResultSet * resultSet; |
実行する SQL 文を準備します。
次のコードは、SELECT 文の実行を準備します。
prepStmt = conn->PrepareStatement("SELECT MyColumn1 FROM MyTable"); |
文を準備するときにエラーをチェックします。
たとえば、SQL 構文のエラーのチェックには次のコードが有用です。
if( prepStmt == NULL ) { const ULError * ulerr; ulerr = conn->GetLastError(); // write code to handle the error return; } |
SQL を実行し、クエリの結果を移動するために使用できる結果セットオブジェクトを返します。
resultSet = prepStmt->ExecuteQuery(); if( resultSet == NULL ) { const ULError * ulerr; ulerr = conn->GetLastError(); // write code to handle the error prepStmt->Close(); return; } |
Next メソッドを呼び出すことによって、ローをトラバースします。結果を文字列として保存し、バッファーに格納します。
Next メソッドによって、結果セットの次のローに移動します。呼び出しが true を返す場合、ULResultSet オブジェクトはローに位置付けられます。それ以外の場合 (呼び出しが false を返す場合)、すべてのローがトラバースされます。
while( resultSet->Next() ) { char buffer[ 100 ]; resultSet->GetString( 1, buffer, 100 ); printf( "MyColumn = %s\n", buffer ); } |
準備文オブジェクトと結果セットオブジェクトのリソースをクリーンアップします。
Close メソッドを呼び出した後に、準備文オブジェクトにアクセスしないでください。
resultSet->Close(); prepStmt->Close(); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |