適用対象:SQL Server
Azure SQL Database
Azure 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 を使用してください。 |