次の方法で共有


ODBC API リファレンス

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

ODBC API には、データ ソースへの接続、SQL ステートメントの実行、結果の取得のための標準の関数セットが用意されています。 各関数は C プログラミング言語関数であり、目的、ODBC バージョン、構文、引数、戻り値、診断、およびコード例を含む説明があります。

標準 CLI 準拠レベルには、ISO 92、Open Group、ODBC、Deprecated のいずれかを指定できます。 オープン グループは ISO 92 の純粋なスーパーセットであるため、ISO 92 準拠としてタグ付けされた関数もオープン グループ バージョン 1 に表示されます。 ODBC 3.x は Open Group バージョン 1 の純粋なスーパーセットであるため、Open Group 準拠としてタグ付けされた関数も ODBC 3.x に表示されます。 ODBC 準拠としてタグ付けされた関数は、どちらの標準にも表示されません。 非推奨としてタグ付けされた関数は、ODBC 3.x では非推奨になりました。

SQLGetDiagField 関数の説明では、診断情報を処理する方法について説明します。 SQLSTATE 値に関連付けられているテキストは、条件の説明を提供しますが、特定のテキストは指定しません。

ODBC 関数に関するドライバー固有の情報については、ドライバーのセクションを参照してください。

割り当てと管理の処理

これらの関数は、環境、接続、ステートメント、および記述子のハンドルを割り当て、解放します。 ハンドルは、ODBC アプリケーションの状態を追跡するための主要なメカニズムです。

機能 Description
SQLAllocHandle 環境、接続、ステートメント、または記述子ハンドルを割り当てます。 これは、非推奨の割り当て関数を置き換える ODBC 3.x 関数です。
SQLFreeHandle 環境、接続、ステートメント、または記述子ハンドルを解放し、関連付けられているリソースを解放します。
SQLAllocConnect 接続ハンドルを割り当てます。 ODBC 3.x では非推奨。代わりに SQLAllocHandle を使用してください。
SQLAllocEnv 環境ハンドルを割り当てます。 ODBC 3.x では非推奨。代わりに SQLAllocHandle を使用してください。
SQLAllocStmt ステートメント ハンドルを割り当てます。 ODBC 3.x では非推奨。代わりに SQLAllocHandle を使用してください。
SQLFreeConnect 接続ハンドルを解放します。 ODBC 3.x では非推奨。代わりに SQLFreeHandle を使用してください。
SQLFreeEnv 環境ハンドルを解放します。 ODBC 3.x では非推奨。代わりに SQLFreeHandle を使用してください。
SQLFreeStmt ステートメント処理を停止し、関連するカーソルを閉じ、保留中の結果を破棄し、必要に応じてステートメント ハンドルに関連付けられているリソースを解放します。

接続関数

これらの関数は、データ ソースへの接続を確立して管理します。 標準接続、ドライバー固有のダイアログ、反復参照など、さまざまな接続方法がサポートされています。

機能 Description
SQLConnect データ ソース名、ユーザー ID、パスワードを使用して、データ ソースへの接続を確立します。
SQLDriverConnect 接続文字列を使用して接続を確立します。 追加の接続情報のドライバー固有のダイアログをサポートします。
SQLBrowseConnect データ ソースへの接続に必要な属性を検出して列挙する反復メソッドをサポートします。
SQLDisconnect データ ソースへの接続を閉じ、関連付けられているリソースを解放します。
SQLDataSources 使用可能なデータ ソースの一覧を返します。 特定のドライバーではなく、ドライバー マネージャーで呼び出されます。
SQLDrivers インストールされているドライバーとその属性の一覧を返します。 ドライバー マネージャーで呼び出されます。

ステートメントの準備と実行

これらの関数は、SQL ステートメントを準備して実行します。 ODBC では、直接実行と準備された実行の両方がサポートされ、準備された実行により、繰り返し実行されるステートメントのパフォーマンスが向上します。

機能 Description
Sqlprepare 後で実行できるように SQL ステートメントを準備します。 データ ソースはステートメントをコンパイルして最適化します。
SQLExecute 準備されたステートメントを実行します。 この関数を呼び出す前に SQLPrepare を呼び出します。
SQLExecDirect 1 回の呼び出しで SQL ステートメントを準備して実行します。 1 回だけ実行されるステートメントに使用します。
SQLNativeSql ドライバーが ODBC SQL 構文を変換する方法を示す、ドライバーによって変更された SQL 文字列を返します。
SQLCancel ステートメントの処理を取り消します。 非同期実行関数または別のスレッドで実行されている関数を取り消すことができます。
SQLCancelHandle 接続またはステートメントの処理を取り消します。 接続関数を取り消す SQLCancel よりも柔軟性が高い。
SQLCompleteAsync 非同期関数が完了するタイミングを決定します。 通知ベースの非同期処理で使用されます。

パラメーター バインディング

これらの関数は、SQL ステートメントのパラメーター マーカーにアプリケーション変数をバインドします。 パラメーターを使用すると、準備されたステートメントで動的な値が有効になります。

機能 Description
SQLBindParameter SQL ステートメントのパラメーター マーカーにアプリケーション変数をバインドします。 入力、出力、および入力/出力パラメーターをサポートします。
SQLNumParams SQL ステートメント内のパラメーターの数を返します。
SQLDescribeParam データ型、サイズ、有効桁数など、パラメーター マーカーの説明を返します。
SQLParamData 実行時にパラメーター データを提供するために、 SQLPutData と共に使用されます。 データを必要とするパラメーターを返します。
SQLPutData 実行時にパラメーターのデータ値の一部またはすべてを送信します。 チャンク単位の大きなデータをサポートします。
SQLSetParam パラメーターをバインドします。 ODBC 3.x では非推奨。代わりに SQLBindParameter を使用してください。
SQLParamOptions パラメーター配列のオプションを設定します。 ODBC 3.x では非推奨。代わりにステートメント属性を使用してください。

結果セットのバインドと取得

これらの関数は、アプリケーション バッファーを結果セット列にバインドし、クエリ結果からデータを取得します。

機能 Description
SQLBindCol 後続のフェッチ操作のために、アプリケーション変数を結果セット列にバインドします。
SQLFetch 結果セットからバインドされた列にデータの次の行セットをフェッチします。
SQLFetchScroll 指定した行セットを結果セットからフェッチします。 最初、最後、次、前、絶対、および相対位置へのスクロールをサポートします。
SQLGetData SQLFetchまたはSQLFetchScroll後の 1 つの列のデータを取得します。 大きなデータまたはバインドされていない列に便利です。
SQLExtendedFetch 指定したデータ行セットをフェッチします。 ODBC 3.x では非推奨。代わりに SQLFetchScroll を使用してください。
SQLMoreResults ステートメントでより多くの結果を使用できるかどうかを判断し、次の結果セットに進みます。
SQLRowCount UPDATE、INSERT、または DELETE ステートメントの影響を受ける行数を返します。

カーソル操作

これらの関数は、行セットに対するカーソルの動作、配置、および一括操作を管理します。

機能 Description
SQLSetPos 行セット内のカーソル位置を設定し、アプリケーションがその位置のデータを更新、更新、または削除できるようにします。
SQLBulkOperations 行セットに対して一括挿入、更新、削除、またはブックマークごとのフェッチ操作を実行します。
SQLCloseCursor ステートメントで開かれたカーソルを閉じ、保留中の結果を破棄します。
SQLGetCursorName ステートメントに関連付けられているカーソル名を返します。
SQLSetCursorName 位置指定された UPDATE ステートメントおよび DELETE ステートメントのカーソル名を指定します。
SQLSetScrollOptions カーソル動作のオプションを設定します。 ODBC 3.x では非推奨。代わりにステートメント属性を使用してください。

カタログ関数

これらの関数は、テーブル、列、インデックス、特権、ストアド プロシージャなど、データベース構造に関するメタデータを取得します。

機能 Description
SQLTables データ ソース内のテーブル名の一覧を返します。 カタログ、スキーマ、テーブルの種類によるフィルター処理をサポートします。
SQLColumns 指定したテーブルの列名とその属性の一覧を返します。
SQLPrimaryKeys テーブルの主キーを構成する列を返します。
SQLForeignKeys テーブルの外部キー、またはテーブルの主キーを参照する他のテーブルの外部キーを返します。
SQLStatistics テーブルとそのテーブルに関連付けられているインデックスの一覧に関する統計を返します。
SQLSpecialColumns 行の値が更新されたときに自動的に更新される行または列を一意に識別する列を返します。
SQLColumnPrivileges テーブルの列と関連する権限の一覧を返します。
SQLTablePrivileges テーブルの一覧と、各テーブルに関連付けられている権限を返します。
SQLProcedures データ ソース内のストアド プロシージャ名の一覧を返します。
SQLProcedureColumns 指定したプロシージャの結果セット内の入力/出力パラメーターと列の一覧を返します。
SQLGetTypeInfo データ ソースでサポートされているデータ型に関する情報を返します。

記述子操作

これらの関数は、記述子値を取得および設定します。 記述子には、パラメーターと結果セット列に関するメタデータが含まれています。

機能 Description
SQLGetDescField 記述子レコードの 1 つのフィールドの値を返します。
SQLGetDescRec 1 回の呼び出しで記述子レコードの複数のフィールドを返します。
SQLSetDescField 記述子レコードの 1 つのフィールドの値を設定します。
SQLSetDescRec 1 回の呼び出しで記述子レコードの複数のフィールドを設定します。
SQLCopyDesc 記述子ハンドルから別の記述子ハンドルに記述子情報をコピーします。

属性関数

これらの関数は、環境、接続、およびステートメントの属性を取得および設定します。 属性は、ODBC 動作のさまざまな側面を制御します。

機能 Description
SQLSetEnvAttr その環境内のすべての接続に影響を与える環境属性を設定します。
SQLGetEnvAttr 環境属性の値を返します。
SQLSetConnectAttr 接続とステートメントに影響を与える接続属性を設定します。
SQLGetConnectAttr 接続属性の値を返します。
SQLSetStmtAttr ステートメント属性を設定します。 カーソル、クエリ タイムアウト、およびパラメーター設定が含まれます。
SQLGetStmtAttr ステートメント属性の値を返します。
SQLSetConnectOption 接続オプションを設定します。 ODBC 3.x では非推奨。代わりに SQLSetConnectAttr を使用してください。
SQLGetConnectOption 接続オプションの値を返します。 ODBC 3.x では非推奨。代わりに SQLGetConnectAttr を使用してください。
SQLSetStmtOption ステートメント オプションを設定します。 ODBC 3.x では非推奨。代わりに SQLSetStmtAttr を使用してください。
SQLGetStmtOption ステートメント オプションの値を返します。 ODBC 3.x では非推奨。代わりに SQLGetStmtAttr を使用してください。

診断および情報関数

これらの関数は、診断情報、エラー メッセージ、ドライバー機能、およびデータ ソース情報を取得します。

機能 Description
SQLGetDiagField エラー、警告、および状態情報を含む診断レコード内のフィールドの値を返します。
SQLGetDiagRec SQLSTATE、ネイティブ エラー コード、メッセージ テキストなど、診断レコードでよく使用されるいくつかのフィールドを返します。
SQLError エラー情報を返します。 ODBC 3.x では非推奨。代わりに SQLGetDiagRec を使用してください。
SQLGetFunctions ドライバーが特定の ODBC 関数をサポートしているかどうかに関する情報を返します。
Sqlgetinfo サポートされている機能を含む、ドライバーとデータ ソースに関する一般的な情報を返します。

結果セットのメタデータ

これらの関数は、結果セットの構造に関する情報を返します。

機能 Description
SQLNumResultCols 結果セット内の列の数を返します。
SQLDescribeCol 結果セット列の列名、データ型、有効桁数、小数点以下桁数、および null 許容値を返します。
SQLColAttribute 結果セット内の列の記述子情報を返します。 SQLDescribeColよりも柔軟性が高い。
SQLColAttributes 列の属性を返します。 ODBC 3.x では非推奨。代わりに SQLColAttribute を使用してください。

トランザクション管理

これらの関数はトランザクション境界を管理し、変更がコミットまたはロールバックされるタイミングを制御します。

機能 Description
SQLEndTran トランザクションをコミットまたはロールバックします。 環境または 1 つの接続上のすべての接続に適用できます。
SQLTransact トランザクションをコミットまたはロールバックします。 ODBC 3.x では非推奨。代わりに SQLEndTran を使用してください。