ユーザーが入力した SQL ステートメント
アドホック分析を実行するアプリケーションでは、通常、ユーザーが SQL ステートメントを直接入力することもできます。 次に例を示します。
SQLCHAR * Statement, SqlState[6], Msg[SQL_MAX_MESSAGE_LENGTH];
SQLSMALLINT i, MsgLen;
SQLINTEGER NativeError;
SQLRETURN rc1, rc2;
// Prompt user for SQL statement.
GetSQLStatement(Statement);
// Execute the statement directly. Because it will be executed only once,
// do not prepare it.
rc1 = SQLExecDirect(hstmt, Statement, SQL_NTS);
// Process any errors or returned information.
if ((rc1 == SQL_ERROR) || rc1 == SQL_SUCCESS_WITH_INFO) {
i = 1;
while ((rc2 = SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, i, SqlState, &NativeError,
Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA) {
DisplayError(SqlState, NativeError, Msg, MsgLen);
i++;
}
}
この方法では、アプリケーションのコーディングが簡略化されます。アプリケーションは SQL ステートメントをビルドするユーザーとステートメントの有効性を確認するデータ ソースに依存します。 複雑な SQL を適切に表現するよう、グラフィカル ユーザー インターフェイスを記述するのは難しいため、ユーザーには単純なSQL ステートメント テキストの入力を求めるのが好ましいかもしれません。 ただし、この場合、ユーザーは SQL だけでなく、クエリ対象のデータ ソースのスキーマも認識する必要があります。 一部のアプリケーションでは、ユーザーが基本的な SQL ステートメントを作成できるグラフィカル ユーザー インターフェイスが提供され、ユーザーが変更できるテキスト インターフェイスも提供されます。