準拠
導入されたバージョン: ODBC 1.0 標準コンプライアンス: ISO 92
まとめ
SQLExecDirect は、ステートメントにパラメーターが存在する場合は、パラメーター マーカー変数の現在の値を使用して、準備可能なステートメントを実行します。
SQLExecDirect は、1 回限りの実行のために SQL ステートメントを送信する最速の方法です。
構文
SQLRETURN SQLExecDirect(
SQLHSTMT StatementHandle,
SQLCHAR * StatementText,
SQLINTEGER TextLength);
引数
StatementHandle
[入力]ステートメント ハンドル。
StatementText
[入力]実行する SQL ステートメント。
TextLength
[入力]*StatementText の文字数。
返品
SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_NEED_DATA、SQL_STILL_EXECUTING、SQL_ERROR、SQL_NO_DATA、SQL_INVALID_HANDLE、またはSQL_PARAM_DATA_AVAILABLE。
診断
SQLExecDirectがSQL_ERRORまたはSQL_SUCCESS_WITH_INFOを返す場合は、SQL_HANDLE_STMTのHandleTypeとStatementHandleのHandleを使用してSQLGetDiagRecを呼び出すことによって、関連付けられた SQLSTATE 値を取得できます。 次の表は、 SQLExecDirect によって一般的に返される SQLSTATE 値の一覧と、この関数のコンテキストでそれぞれについて説明します。表記 "(DM)" は、ドライバー マネージャーによって返される SQLSTATEs の説明の前にあります。 特に明記されていない限り、各 SQLSTATE 値に関連付けられている戻りコードはSQL_ERROR。
| SQLSTATE | エラー | 説明 |
|---|---|---|
| 01000 | 一般的な警告 | ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01001 | カーソル操作の競合 |
*
StatementText には配置された更新ステートメントまたは delete ステートメントが含まれており、行または複数の行が更新または削除されませんでした。 (複数行の更新の詳細については、SQL_ATTR_SIMULATE_CURSOR の説明を参照してください。attribute in SQLSetStmtAttr.) (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01003 | set 関数で NULL 値が削除される | 引数 StatementText には set 関数 ( AVG、 MAX、 MIN など) が含まれていましたが、 COUNT set 関数は含まれず、NULL 引数の値は関数が適用される前に削除されました。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01004 | 文字列データ、右切り捨て | 入力/出力または出力パラメーターに対して返された文字列またはバイナリ データにより、非空白文字または NULL 以外のバイナリ データが切り捨てられました。 文字列値の場合は、右に切り捨てられました。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01006 | 特権が取り消されない | * StatementText には REVOKE 文が含まれており、ユーザーは指定された権限を持っていませんでした。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01007 | 特権が付与されていません | *StatementText は GRANT 文であり、ユーザーに指定された権限を与えることはできませんでした。 |
| 01S02 | オプション値の変更 | 指定されたステートメント属性は、実装の作業条件のために無効であるため、同様の値が一時的に置き換えられました。 (SQLGetStmtAttr を呼び出して、一時的に置換された値が何であるかを判断できます)。置き換え値は、カーソルが閉じられるまで StatementHandle に対して有効です。その時点で、ステートメント属性は前の値に戻ります。 変更できるステートメント属性は次のとおりです。 SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 01S07 | 小数部の切り捨て | 入力/出力または出力パラメーターに対して返されたデータが切り捨てられ、数値データ型の小数部が切り捨てられたか、時刻、タイムスタンプ、または間隔データ型の時間部分の小数部が切り捨てられました。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 07002 | COUNT フィールドが正しくありません |
SQLBindParameter で指定されたパラメーターの数が、*StatementText に含まれる SQL ステートメント内のパラメーターの数より少なかった。 SQLBindParameter は、 ParameterValuePtr null ポインターに設定 StrLen_or_IndPtr 、SQL_NULL_DATAまたはSQL_DATA_AT_EXECに設定されず、 InputOutputType SQL_PARAM_OUTPUT に設定されていないため、 SQLBindParameter で指定されたパラメーターの数が *StatementText に含まれる SQL ステートメント内のパラメーターの数を超えるように呼び出されました。 |
| 07006 | 制限付きデータ型属性違反 | バインドされたパラメーターの SQLBindParameter の ValueType 引数によって識別されるデータ値を、SQLBindParameter の ParameterType 引数で識別されるデータ型に変換できませんでした。 SQL_PARAM_INPUT_OUTPUTまたはSQL_PARAM_OUTPUTとしてバインドされたパラメーターに対して返されたデータ値を、SQLBindParameter の ValueType 引数で識別されるデータ型に変換できませんでした。 (1 つ以上の行のデータ値を変換できなかったが、1 つ以上の行が正常に返された場合、この関数はSQL_SUCCESS_WITH_INFOを返します)。 |
| 07007 | 制限付きパラメーター値違反 | パラメーター型SQL_PARAM_INPUT_OUTPUT_STREAMは、パーツ内のデータを送受信するパラメーターにのみ使用されます。 このパラメーター型では、入力バインド バッファーは使用できません。 このエラーは、パラメーターの型がSQL_PARAM_INPUT_OUTPUTされ、SQLBindParameter で指定された *StrLen_or_IndPtrがSQL_NULL_DATA、SQL_DEFAULT_PARAM、SQL_LEN_DATA_AT_EXEC(len)、またはSQL_DATA_AT_EXECと等しくない場合に発生します。 |
| 07S01 | 既定のパラメーターの使用が無効です | SQLBindParameter で設定されたパラメーター値がSQL_DEFAULT_PARAMされ、対応するパラメーターに既定値が設定されていませんでした。 |
| 08S01 | 通信リンクエラー | ドライバーとドライバーが接続されたデータ ソース間の通信リンクは、関数の処理が完了する前に失敗しました。 |
| 21S01 | 挿入する値の一覧が列の一覧と一致しません | * StatementText には INSERT 文が含まれており、挿入すべき値の数が派生したテーブルの次数と一致しませんでした。 |
| 21S02 | 派生テーブルの次数が列リストと一致しない | * StatementText には CREATE VIEW 文が含まれており、無条件の列リスト(SQL文の 列識別子 引数で指定された列数)には、SQL文の クエリ仕様 引数で定義される派生テーブルの列数よりも多くの名前が含まれていました。 |
| 22001 | 文字列データ、右切り捨て | 列に文字またはバイナリ値を割り当てると、非空白文字データまたは null 以外のバイナリ データが切り捨てられました。 |
| 22002 | インジケーター変数は必須ですが、指定されていません | NULL データは、SQLBindParameter によって設定されたStrLen_or_IndPtrが null ポインターである出力パラメーターにバインドされました。 |
| 22003 | 範囲外の数値 |
*
StatementText には、バインドされた数値パラメーターまたはリテラルを含む SQL ステートメントが含まれており、関連付けられているテーブル列に割り当てられると、数値の全体 (小数部ではなく) 部分が切り捨てられる原因となります。 1 つ以上の入力/出力パラメーターまたは出力パラメーターに対して数値 (数値または文字列) を返すと、数値の一部全体 (小数部ではなく) が切り捨てられる可能性があります。 |
| 22007 | datetime 形式が無効です |
*
StatementText には、バインドされたパラメーターとして日付、時刻、またはタイムスタンプ構造を含む SQL ステートメントが含まれ、パラメーターはそれぞれ無効な日付、時刻、またはタイムスタンプでした。 入力/出力または出力パラメーターが日付、時刻、またはタイムスタンプ C 構造体にバインドされ、返されたパラメーターの値がそれぞれ無効な日付、時刻、またはタイムスタンプでした。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
| 22008 | Datetime フィールドオーバーフロー |
*
StatementText には、datetime 式を含む SQL ステートメントが含まれていました。この式を計算すると、日付、時刻、またはタイムスタンプ構造が無効になります。 入力/出力または出力パラメーターに対して計算された datetime 式の結果、日付、時刻、またはタイムスタンプ C 構造体が無効になりました。 |
| 22012 | 0 で除算しました |
*
StatementText には、0 による除算の原因となった算術式を含む SQL ステートメントが含まれていました。 入力/出力パラメーターまたは出力パラメーターに対して計算された算術式は、0 で除算されます。 |
| 22015 | 間隔フィールドのオーバーフロー |
*StatementText には、正確な数値または間隔パラメーターが含まれていました。このパラメーターを間隔 SQL データ型に変換すると、有効桁数が失われます。 *StatementText には、複数のフィールドを持つ間隔パラメーターが含まれていました。このパラメーターを列の数値データ型に変換すると、数値データ型に表現が含まれていませんでした。 *StatementText には、間隔 SQL 型に割り当てられたパラメーター データが含まれており、間隔 SQL 型に C 型の値が表現されていませんでした。 正確な数値または間隔の SQL 型である入力/出力または出力パラメーターを間隔 C 型に割り当てると、有効桁数が失われます。 入力/出力または出力パラメーターが間隔 C 構造体に割り当てられたときに、間隔データ構造内のデータの表現がありませんでした。 |
| 22018 | キャスト指定の文字値が無効です |
*StatementText には、正確または概数、datetime、または間隔データ型の C 型が含まれています。列の SQL 型は文字データ型であり、列の値はバインドされた C 型の有効なリテラルではありません。 入力/出力または出力パラメーターが返されたとき、SQL 型は正確または概数、datetime、または間隔データ型でした。C型はSQL_C_CHAR。列の値が、バインドされた SQL 型の有効なリテラルではありません。 |
| 22019 | エスケープ文字が無効です | * StatementText には、WHERE 句に ESCAPE を持つ LIKE 述語を含む SQL ステートメントが含まれており、ESCAPE の後のエスケープ文字の長さが 1 に等しくありません。 |
| 22025 | エスケープ シーケンスが無効です | * StatementText には、WHERE 句に "LIKEpattern valueESCAPEescape character" を含む SQL ステートメントが含まれており、パターン値のエスケープ文字の後に続く文字が "%" または "_" ではありません。 |
| 23000 | 整合性制約違反 | * StatementText には、パラメーターまたはリテラルを含む SQL ステートメントが含まれていました。 関連付けられたテーブル列で NOT NULL として定義された列のパラメーター値が NULL であったり、一意の値のみを含む制約がある列に対して重複値が指定されたり、その他の整合性制約に違反したりしました。 |
| 24000 | カーソル状態が無効 | カーソルは、SQLFetch または SQLFetchScroll によってStatementHandle に配置されました。 このエラーは、 SQLFetch または SQLFetchScroll がSQL_NO_DATAを返していない場合にドライバー マネージャーによって返され、 SQLFetch または SQLFetchScroll がSQL_NO_DATAを返した場合にドライバーによって返されます。 カーソルは開いていますが、 StatementHandle に配置されていません。 * StatementText には位置指定の更新または削除ステートメントが含まれ、カーソルは結果セットの開始前または結果セットの末尾の後に配置されました。 |
| 34000 | カーソル名が無効 | * StatementText には位置指定の更新ステートメントまたは delete ステートメントが含まれており、実行中のステートメントによって参照されているカーソルが開いていません。 |
| 3D000 | カタログ名が無効です | StatementText で指定されたカタログ名が無効でした。 |
| 3F000 | 無効なスキーマ名 | StatementText で指定されたスキーマ名が無効でした。 |
| 40001 | シリアル化エラー | 別のトランザクションでリソースのデッドロックが発生したため、トランザクションがロールバックされました。 |
| 40003 | ステートメントの入力候補が不明です | この関数の実行中に関連付けられた接続が失敗し、トランザクションの状態を特定できません。 |
| 42000 | 構文エラーまたはアクセス違反 |
*
StatementText には、準備できなかった SQL ステートメント、または構文エラーが含まれていました。 ユーザーには、*StatementText に含まれる SQL ステートメントを実行する権限がありませんでした。 |
| 42S01 | ベース テーブルまたはビューが既に存在する | * StatementText には CREATE TABLE または CREATE VIEW 文が含まれており、指定されたテーブル名またはビュー名はすでに存在します。 |
| 42S02 | ベース テーブルまたはビューが見つかりません |
*
ステートメントテキスト には DROP TABLE 文または DROP VIEW 文が含まれており、指定されたテーブル名やビュー名は存在しませんでした。 * StatementText には ALTER TABLE 文が含まれており、指定されたテーブル名は存在しませんでした。 * StatementText には CREATE VIEW 文が含まれており、クエリ仕様で定義されたテーブル名やビュー名は存在しませんでした。 * StatementText には CREATE INDEX 文が含まれており、指定されたテーブル名は存在しませんでした。 * ステートメントテキスト には GRANT または REVOKE 文が含まれており、指定されたテーブル名やビュー名は存在しませんでした。 * StatementText には SELECT ステートメントが含まれており、指定したテーブル名またはビュー名が存在しませんでした。 * StatementText には DELETE、 INSERT、または UPDATE 文が含まれており、指定されたテーブル名は存在しませんでした。 * StatementText には CREATE TABLE 文が含まれており、制約で指定されたテーブル(作成中のテーブル以外のテーブルを参照)は存在しませんでした。 * StatementText には CREATE SCHEMA 文が含まれており、指定されたテーブル名やビュー名は存在しませんでした。 |
| 42S11 | インデックスは既に存在します |
*
StatementText には CREATE INDEX 文が含まれており、指定されたインデックス名はすでに存在していました。 * StatementText には CREATE SCHEMA 文が含まれており、指定されたインデックス名はすでに存在していました。 |
| 42S12 | インデックスが見つかりません | * StatementText には DROP INDEX 文が含まれており、指定されたインデックス名は存在しませんでした。 |
| 42S21 | 列は既に存在します | * ステートメントテキスト には ALTER TABLE 文が含まれており、 ADD 節で指定された列は一意でなく、ベーステーブル内の既存の列を識別しません。 |
| 42S22 | 列が見つかりません |
*
StatementText には CREATE INDEX 文が含まれており、列リストで指定された列名のうち1つ以上のものは存在しませんでした。 * ステートメントテキスト には GRANT 文または REVOKE 文が含まれており、指定された列名は存在しませんでした。 * StatementText には SELECT、 DELETE、 INSERT、または UPDATE 文が含まれており、指定された列名は存在しませんでした。 * StatementText には CREATE TABLE 文が含まれており、制約で指定された列(作成中のテーブル以外のテーブルを参照)は存在しませんでした。 * StatementText には CREATE SCHEMA 文が含まれており、指定された列名は存在しませんでした。 |
| 44000 | WITH CHECK OPTION 違反 | 引数 StatementText は、ビューテーブルまたはビューテーブルから派生したテーブルに対して実行された INSERT 文を含み、 WITH CHECK OPTIONを指定して作成され、 INSERT 文の影響を受けた1行以上がビューテーブルに存在しなくなるものでした。 引数 StatementText は、ビューテーブルまたはビューテーブルから派生したテーブルに対して実行された UPDATE 文を含み、 WITH CHECK OPTIONを指定して作成され、 UPDATE 文の影響を受けた1行以上がビューテーブルに存在しなくなるものでした。 |
| HY000 | 一般的なエラー | 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファー内の SQLGetDiagRec によって返されるエラー メッセージには、エラーとその原因が記述されています。 |
| HY001 | メモリ割り当てエラー | ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てませんでした。 |
| HY008 | 操作が取り消されました |
StatementHandle に対して非同期処理が有効になりました。 関数が呼び出され、実行が完了する前に、 SQLCancel または SQLCancelHandle が StatementHandle で呼び出されました。 その後、 StatementHandle で関数が再度呼び出されました。 関数が呼び出され、実行が完了する前に、 SQLCancel または SQLCancelHandle がマルチスレッド アプリケーション内の別のスレッドから StatementHandle で呼び出されました。 |
| HY009 | null ポインターの使用が無効です | (DM) *StatementText が null ポインターでした。 |
| HY010 | 関数シーケンス エラー | (DM) StatementHandle に関連付けられている接続ハンドルに対して非同期実行関数が呼び出されました。 この非同期関数は、 SQLExecDirect 関数が呼び出されたときにまだ実行されていました。 (DM) SQLExecute、 SQLExecDirect、または SQLMoreResultsStatementHandle が呼び出され、SQL_PARAM_DATA_AVAILABLEが返されました。 この関数は、すべてのストリーミング パラメーターのデータが取得される前に呼び出されました。 (DM) 非同期実行関数 (この関数ではない) が StatementHandle に対して呼び出されこの関数が呼び出されたときにはまだ実行されていました。 (DM) SQLExecute、 SQLExecDirect、 SQLBulkOperations、または SQLSetPos が StatementHandle に対して呼び出され、SQL_NEED_DATAが返されました。 この関数は、すべての実行時データ パラメーターまたは列に対してデータが送信される前に呼び出されました。 |
| HY013 | メモリ管理エラー | メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。 |
| HY090 | 文字列またはバッファーの長さが無効です | (DM) 引数 TextLength は 0 以下でしたが、SQL_NTSと等しくありません。 SQLBindParameter で設定されたパラメーター値が null ポインターであり、パラメーターの長さの値が 0、SQL_NULL_DATA、SQL_DATA_AT_EXEC、SQL_DEFAULT_PARAM、または SQL_LEN_DATA_AT_EXEC_OFFSET 以下でした。 SQLBindParameter で設定されたパラメーター値は null ポインターではありません。C データ型はSQL_C_BINARYまたはSQL_C_CHARでした。パラメーターの長さの値は 0 未満でしたが、SQL_NTS、SQL_NULL_DATA、SQL_DATA_AT_EXEC、SQL_DEFAULT_PARAM、または SQL_LEN_DATA_AT_EXEC_OFFSET 以下でした。 SQLBindParameter によってバインドされたパラメーターの長さの値がSQL_DATA_AT_EXECに設定されました。SQL 型はSQL_LONGVARCHAR、SQL_LONGVARBINARY、または長いデータ ソース固有のデータ型のいずれかであり、SQLGetInfo のSQL_NEED_LONG_DATA_LEN情報の種類は "Y" でした。 |
| HY105 | パラメーターの型が無効です | SQLBindParameter の引数 InputOutputType に指定された値がSQL_PARAM_OUTPUTされ、パラメーターが入力パラメーターでした。 |
| HY109 | カーソル位置が無効です | * StatementText には位置指定された更新ステートメントまたは delete ステートメントが含まれ、カーソルは削除されたかフェッチできなかった行に ( SQLSetPos または SQLFetchScroll によって) 配置されました。 |
| HY117 | 不明なトランザクション状態のため、接続が中断されます。 切断関数と読み取り専用関数のみが許可されます。 | (DM) 中断状態の詳細については、「 SQLEndTran 関数を参照してください。 |
| HYC00 | 省略可能な機能が実装されていません | SQL_ATTR_CONCURRENCY属性とSQL_ATTR_CURSOR_TYPE ステートメント属性の現在の設定の組み合わせは、ドライバーまたはデータ ソースではサポートされていませんでした。 SQL_ATTR_USE_BOOKMARKS ステートメント属性はSQL_UB_VARIABLEに設定され、SQL_ATTR_CURSOR_TYPE ステートメント属性は、ドライバーがブックマークをサポートしていないカーソルの種類に設定されました。 |
| HYT00 | タイムアウトの期限が切れました | データ ソースが結果セットを返す前に、クエリのタイムアウト期間が期限切れになりました。 タイムアウト期間は、SQL_ATTR_QUERY_TIMEOUT SQLSetStmtAttr によって設定されます。 |
| HYT01 | 接続のタイムアウト | データ ソースが要求に応答する前に、接続タイムアウト期間の有効期限が切れています。 接続タイムアウト期間は、SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr によって設定されます。 |
| IM001 | ドライバーは、この関数をサポートしていません | (DM) StatementHandle に関連付けられているドライバーは、関数をサポートしていません。 |
| IM017 | 非同期通知モードでポーリングが無効になっている | 通知モデルが使用されるたびに、ポーリングは無効になります。 |
| IM018 | SQLCompleteAsync は、このハンドルに対する前の非同期操作を完了するために呼び出されていません。 | ハンドルに対する前の関数呼び出しがSQL_STILL_EXECUTINGを返し、通知モードが有効になっている場合は、後処理を実行して操作を完了するために、 SQLCompleteAsync をハンドルで呼び出す必要があります。 |
Comments
SQLExecDirect を呼び出して、SQL ステートメントをデータ ソースに送信します。 直接実行の詳細については、「 Direct Execution」を参照してください。 ドライバーは、データ ソースが使用する SQL の形式を使用するようにステートメントを変更し、データ ソースに送信します。 特に、ドライバーは、SQL で特定の機能を定義するために使用されるエスケープ シーケンスを変更します。 エスケープ シーケンスの構文については、ODBC の Escape シーケンスを参照してください。
SQL ステートメントには、1 つ以上のパラメーター マーカーを含めることができます。 パラメーター マーカーを含めるには、適切な位置にある SQL ステートメントに疑問符 (?) を埋め込みます。 パラメーターの詳細については、「 Statement パラメーター」を参照してください。
結果セット (SELECT ステートメントなど) を返す SQLExecDirect の呼び出しが成功すると、ステートメント ハンドルは結果セットの最初の行の前に配置されます。 その後、 SQLFetch や SQLFetchScroll を呼び出して行を取得したり、 SQLRowCount を呼び出して INSERT、 UPDATE、 DELETE 文の影響を受けた行数を確認したりできます。
SQL ステートメントが SELECT ステートメントで、 SQLSetCursorName を 呼び出してカーソルをステートメントに関連付ける場合、ドライバーは指定されたカーソルを使用します。 それ以外の場合、ドライバーはカーソル名を生成します。
データ ソースが手動コミット モード (明示的なトランザクション開始を必要とする) で、トランザクションがまだ開始されていない場合、ドライバーは SQL ステートメントを送信する前にトランザクションを開始します。 詳細については、「 コミット モード」を参照してください。
SQLExecDirect を使用して COMMIT ステートメントまたは ROLLBACK ステートメントを送信した場合、DBMS 製品間で相互運用することはできません。 トランザクションをコミットまたはロールバックするには、 SQLEndTran を呼び出します。
SQLExecDirectが実行時データ パラメーターを検出すると、SQL_NEED_DATAが返されます。 SQLParamData と SQLPutData を使用してデータを送信します。 「SQLBindParameter、SQLParamData、SQLPutData、および長いデータの送信を参照してください。
SQLExecDirect が、データ ソースの行に影響しない検索された更新、挿入、または削除ステートメントを実行すると、SQLExecDirect の呼び出しはSQL_NO_DATAを返します。
SQL_ATTR_PARAMSET_SIZE ステートメント属性の値が 1 より大きく、SQL ステートメントに少なくとも 1 つのパラメーター マーカーが含まれている場合、SQLExecDirect は、SQLBindParameter の呼び出しで ParameterValuePointer 引数が指す配列のパラメーター値のセットごとに SQL ステートメントを 1 回実行します。 詳細については、「 パラメーター値の配列」を参照してください。
ブックマークが有効になっていて、ブックマークをサポートできないクエリが実行された場合、ドライバーは属性値を変更し、SQLSTATE 01S02 (オプション値が変更されました) を返すことによって、ブックマークをサポートする環境に強制的に適用する必要があります。 属性を変更できない場合、ドライバーは SQLSTATE HY024 (無効な属性値) を返す必要があります。
Note
接続プールを使用する場合は、データベースまたはデータベースのコンテキストを変更する SQL ステートメント (SQL Server の USEデータベース ステートメントなど) を実行しないでください。SQL Server では、データ ソースによって使用されるカタログが変更されます。
コード例
関連する関数
| 情報 | 参照トピック |
|---|---|
| 結果セット内の列へのバッファーのバインド | SQLBindCol 関数 |
| ステートメント処理の取り消し | SQLCancel 関数 |
| コミットまたはロールバック操作の実行 | SQLEndTran 関数 |
| 準備された SQL ステートメントの実行 | SQLExecute 関数 |
| 複数行のデータをフェッチする | SQLFetch 関数 |
| データブロックのフェッチまたは結果セットのスクロール | SQLFetchScroll 関数 |
| カーソル名を返す | SQLGetCursorName 関数 |
| データの列の一部またはすべてをフェッチする | SQLGetData 関数 |
| データを送信する次のパラメーターを返す | SQLParamData 関数 |
| 実行のためのステートメントの準備 | SQLPrepare 関数 |
| 実行時のパラメーター データの送信 | SQLPutData 関数 |
| カーソル名の設定 | SQLSetCursorName 関数 |
| ステートメント属性の設定 | SQLSetStmtAttr 関数 |