SQLCancelHandle 関数
準拠
導入されたバージョン: ODBC 3.8 標準準拠: なし
ほとんどの ODBC 3.8 (以降) ドライバーでは、この関数が実装されることが想定されています。 ドライバーがそうでない場合は、次の処理を行います。
の概要
SQLCancelHandle は、接続またはステートメントの処理を取り消します。 ドライバー マネージャーは、HandleType がSQL_HANDLE_STMTされている場合に、SQLCancelHandle への呼び出し SQLCancel の呼び出しにマップします。
構文
SQLRETURN SQLCancelHandle(
SQLSMALLINT HandleType,
SQLHANDLE Handle);
引数
HandleType
[入力]処理を取り消すハンドルの型。 有効な値は、SQL_HANDLE_DBCまたはSQL_HANDLE_STMTです。
ハンドル
[入力]処理を取り消すハンドル。
収益
SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、またはSQL_INVALID_HANDLE。
診断
次の表に、SQLCancelHandle によって一般的に返される SQLSTATE 値を示し、この関数のコンテキストでそれぞれについて説明します。"(DM)" という表記は、ドライバー マネージャーによって返される SQLSTATEs の説明の前にあります。 特に明記されていない限り、各 SQLSTATE 値に関連付けられている戻りコードはSQL_ERROR。
SQLSTATE | エラー | 形容 |
---|---|---|
01000 | 一般的な警告 | ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
HY000 | 一般的なエラー | 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファーの引数 |
HY001 | メモリ割り当てエラー | ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てませんでした。 |
HY010 | 関数シーケンス エラー | (DM) HandleType 引数がSQL_HANDLE_STMTされました。関連付けられた接続ハンドルで非同期実行関数が呼び出されました。この関数が呼び出されたとき、関数はまだ実行されていました。 (DM) SQLBrowseConnect は、ConnectionHandleに対して呼び出され、SQL_NEED_DATA返されました。 この関数は、参照プロセスが完了する前に呼び出されました。 |
HY013 | メモリ管理エラー | メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。 |
HY092 | 無効な属性/オプション識別子 | HandleType が SQL_HANDLE_ENV または SQL_HANDLE_DESC に設定されました。 |
HY117 | 不明なトランザクション状態のため、接続が中断されます。 切断関数と読み取り専用関数のみが許可されます。 | (DM) 中断状態の詳細については、SQLEndTran 関数 |
HYT01 | 接続タイムアウトの有効期限が切れた | データ ソースが要求に応答する前に、接続タイムアウト期間の有効期限が切れています。 接続タイムアウト期間は、SQLSetConnectAttr(SQL_ATTR_CONNECTION_TIMEOUT) によって設定されます。 |
IM001 | ドライバーは、この関数をサポートしていません | (DM) ハンドル に関連付けられているドライバーは、関数をサポートしていません。 |
コメント
この関数は SQLCancel
ステートメント操作の取り消しの詳細については、SQLCancel 関数 を参照してください。
接続ハンドル SQLCancelHandle は、次の種類の処理を取り消すことができます。
接続で非同期的に実行されている関数。
別のスレッドの接続ハンドルで実行されている関数。
接続 非同期的に実行されている関数を取り消すために SQLCancelHandle が呼び出されると、SQLCancelHandle によってポストされた診断レコードが、取り消される操作によって返された診断レコードに追加されます。SQLCancelHandle は診断レコードを返しませんが、別のスレッド上の接続で実行されている関数を取り消すときに返されます。
手記
Windows 7 より古い Windows オペレーティング システムに展開されるアプリケーションで SQLCancelHandle
非同期処理 Connection-Related 取り消し
関数がSQL_STILL_EXECUTINGを返す場合、アプリケーションは SQLCancelHandle
別のスレッドで実行されている関数の取り消し
マルチスレッド アプリケーションでは、アプリケーションは別のスレッドで実行されている操作を取り消すことができます。 操作を取り消すために、アプリケーションは、関数によって使用されるハンドル 別のスレッドで SQLCancelHandle を呼び出します。 操作の取り消し方法は、ドライバーとオペレーティング システムによって決まります。 SQLCancelHandle リターン コードは、ドライバーが要求を処理したか、SQL_SUCCESSまたはSQL_ERRORを返したかを示します (診断情報は返されません)。 元の関数の処理が取り消された場合、元の関数は SQL_ERROR および SQLSTATE HY008 (操作が取り消されました) を返します。
別のスレッドで SQLCancelHandle
関連関数
詳細については、次の情報を参照してください。 | 見る |
---|---|
ステートメント ハンドルで非同期的に実行されている関数の取り消し、データが必要なステートメントの関数の取り消し、または別のスレッドのステートメントで実行されている関数の取り消し。 | SQLCancel 関数の |
関連項目
ODBC API リファレンス
ODBC ヘッダー ファイル の
非同期実行 (ポーリング メソッド)