SQLDisconnect 関数
準拠
導入されたバージョン: ODBC 1.0 標準コンプライアンス: ISO 92
の概要
SQLDisconnect は、特定の接続ハンドルに関連付けられている接続を閉じます。
構文
SQLRETURN SQLDisconnect(
SQLHDBC ConnectionHandle);
引数
ConnectionHandle
[入力]接続ハンドル。
収益
SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、SQL_INVALID_HANDLE、またはSQL_STILL_EXECUTING。
診断
SQLDisconnect
SQLSTATE | エラー | 形容 |
---|---|---|
01000 | 一般的な警告 | ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
01002 | 切断エラー | 切断中にエラーが発生しました。 ただし、切断は成功しました。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
08003 | 接続が開かない | (DM) ConnectionHandle |
25000 | トランザクションの状態が無効です | ConnectionHandle |
HY000 | 一般的なエラー | 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファー SQLGetDiagRec によって返されるエラー メッセージは、エラーとその原因を説明します。 |
HY001 | メモリ割り当てエラー | ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てませんでした。 |
HY008 | 操作が取り消されました |
ConnectionHandleに対して非同期処理が有効になりました。 関数が呼び出され、SQLCancelHandle 関数 実行が完了する前に、ConnectionHandleで が呼び出されました。 その後、ConnectionHandleで関数が再度呼び出されました。 関数が呼び出され、SQLCancelHandle |
HY010 | 関数シーケンス エラー | (DM) (DM) 非同期実行関数 (この関数ではない) は、ConnectionHandle に対して呼び出され、この関数が呼び出されたときにまだ実行されていました。 (DM) SQLExecute、SQLExecDirect、SQLBulkOperations、または SQLSetPos が、ConnectionHandle に関連付けられた StatementHandle に対して呼び出され、SQL_NEED_DATA返されました。 この関数は、すべての実行時データ パラメーターまたは列に対してデータが送信される前に呼び出されました。 |
HY013 | メモリ管理エラー | メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。 |
HY117 | 不明なトランザクション状態のため、接続が中断されます。 切断関数と読み取り専用関数のみが許可されます。 | (DM) 中断状態の詳細については、SQLEndTran 関数 |
HYT01 | 接続タイムアウトの有効期限が切れた | データ ソースが要求に応答する前に接続タイムアウト期間の有効期限が切れ、接続がまだアクティブです。 接続タイムアウト期間は、SQLSetConnectAttr(SQL_ATTR_CONNECTION_TIMEOUT) によって設定されます。 |
IM001 | ドライバーは、この関数をサポートしていません | (DM) ConnectionHandle に関連付けられているドライバーは、関数をサポートしていません。 |
IM017 | 非同期通知モードでポーリングが無効になっている | 通知モデルが使用されるたびに、ポーリングは無効になります。 |
IM018 | SQLCompleteAsync は、このハンドルに対する前の非同期操作を完了するために呼び出されていません。 | ハンドルに対する前の関数呼び出しがSQL_STILL_EXECUTINGを返し、通知モードが有効になっている場合は、後処理を実行して操作を完了するために、SQLCompleteAsync をハンドルで呼び出す必要があります。 |
コメント
接続ハンドル 関連付けられた不完全なトランザクションがある間にアプリケーションが SQLDisconnect を呼び出すと、ドライバーは SQLSTATE 25000 (無効なトランザクション状態) を返し、トランザクションが変更されず、接続が開かれていることを示します。 不完全なトランザクションとは、SQLEndTranでコミットまたはロールバックされていないトランザクションです。
接続に関連付けられているすべてのステートメントを解放する前にアプリケーションが SQLDisconnect
アプリケーションで SQLDisconnect
プールされた接続からの切断
共有環境で接続プールが有効になっていて、アプリケーションがその環境の接続 SQLDisconnect を呼び出した場合、接続は接続プールに返され、同じ共有環境を使用する他のコンポーネントでも引き続き使用できます。
コード例
「
関連関数
詳細については、次の情報を参照してください。 | 見る |
---|---|
ハンドルの割り当て | SQLAllocHandle 関数 の |
データ ソースへの接続 | SQLConnect 関数の |
接続文字列またはダイアログ ボックスを使用してデータ ソースに接続する | SQLDriverConnect 関数 の |
コミットまたはロールバック操作の実行 | SQLEndTran 関数 の |
接続ハンドルの解放 | SQLFreeConnect 関数 の |
関連項目
ODBC API リファレンス
ODBC ヘッダー ファイル の