AFX_ODBC_CALL
更新 : 2007 年 11 月
SQL_STILL_EXECUTING を返す任意の ODBC (Open Database Connectivity) API 関数を呼び出すときに、このマクロを使用します。
AFX_ODBC_CALL(SQLFunc )
パラメータ
- SQLFunc
ODBC API 関数。ODBC API 関数の詳細については、Windows SDK を参照してください。
解説
AFX_ODBC_CALL は、関数が SQL_STILL_EXECUTING を返さなくなるまで、関数呼び出しを繰り返します。
AFX_ODBC_CALL を起動する前に、RETCODE 型の変数 nRetCode を宣言します。
MFC ODBC クラスは、同期処理だけを行うようになりました。非同期処理を行うには、ODBC API 関数の SQLSetConnectOption を呼び出します。詳細については、Windows SDK で、関数の非同期実行に関するトピックを参照してください。
使用例
この例では、AFX_ODBC_CALL を使用して、strTableName で名前を指定されたテーブルに列の一覧を戻す SQLColumns ODBC API 関数を呼び出しています。nRetCode を宣言し、レコードセット データ メンバを使用してパラメータを関数に渡します。この例では、呼び出しの結果を CRecordset クラスの Check メンバ関数で確認する方法も示しています。変数 prs は CRecordset オブジェクトへのポインタであり、ほかの場所で宣言されています。
RETCODE nRetCode;
AFX_ODBC_CALL(::SQLColumns(prs->m_hstmt, (SQLTCHAR*)NULL, SQL_NTS, (SQLTCHAR*)NULL,
SQL_NTS, (SQLTCHAR*)strTableName.GetBuffer(), SQL_NTS, (SQLTCHAR*)NULL, SQL_NTS));
if (!prs->Check(nRetCode))
{
AfxThrowDBException(nRetCode, prs->m_pDatabase, prs->m_hstmt);
TRACE(_T("SQLColumns failed\n"));
}
必要条件
ヘッダー : afxdb.h