Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.8.2 SQLExecDirect,SQLExecDirectW

〈この項の構成〉

(1) 機能

準備されたSQL文を実行します。SQL文にパラメタマーカーがあれば,パラメタマーカー変数の現在の値を使用して実行します。この関数は,SQL文を1回の実行で発行できる最も早い方法です。

(2) 形式

(3) 引数

StatementHandle

ステートメントハンドルを指定します。

この関数を実行する前にSQLAllocHandle*OutputHandlePtrで出力された値を指定します。

StatementText

実行するSQL文字列を指定します。NULLポインタは指定できません。必ず1文字以上の文字列を指定してください。SQL文字列中に,注釈(/**/)は指定できませんが,インデクス指定(/*>><<*/)などは指定できます。

TextLength

*StatementTextの長さを指定します。指定した値によって次の表のように扱われます。

TextLengthに指定された値

TextLengthの扱い

0より大きい整数値

*StatementTextの先頭から指定されたデータ長(単位:SQLExecDirectの場合はバイト長,SQLExecDirectWの場合は文字数)が有効になります。

SQL_NTS

TextLengthの値は無視され,*StatementTextの先頭からNULLまでが有効になります。

(4) 戻り値

SQL_SUCCESSSQL_SUCCESS_WITH_INFOSQL_NO_DATASQL_ERRORSQL_NEED_DATAまたはSQL_INVALID_HANDLEが返されます。

(5) SQLSTATE

この関数では次のSQLSTATEを返します。

SQLSTATE

説明

備考

返却

01000

一般警告

×

01001

カーソル操作の競合

×

01003

集合関数でナル値が削除された

×

01004

文字列データの右側が切り捨てられた

01006

特権が破棄されない

×

01007

特権が与えられない

×

01S02

オプション値の変更

×

01S07

小数点以下切り捨て

×

07002

COUNTフィールドが不正

SQLBindParameterに指定されたパラメタの数が?パラメタの数と不一致です。

07006

データ型属性の制限違反

×

07S01

デフォルトパラメタの不正使用

×

08003

接続が存在しない

08S01

通信リンク失敗

×

21S01

挿入する値の一覧と列の一覧の不一致

×

21S02

導出したテーブルの次数が列の一覧と不一致

×

22001

文字列データの右側が切り捨てられた

22002

必要な標識変数が提供されない

×

22003

数値が範囲外である

22007

無効な日付時刻形式

22008

日付時刻フィールドのオーバフロー

22012

ゼロ除算

×

22015

間隔フィールドのオーバフロー

×

22018

キャスト指定に対する無効な文字値

22019

無効なエスケープ文字

×

22025

無効なエスケープシーケンス

×

23000

整合性の制約違反

×

24000

無効なカーソル状態

34000

無効なカーソル名

×

3D000

無効なカタログ名

×

3F000

無効なスキーマ名

×

40001

直列化の失敗

×

40003

ステートメントの完了が不明

×

42000

構文エラーまたはアクセス違反

×

42S01

ベーステーブルまたはビューがすでに存在する

×

42S02

ベーステーブルまたはビューが見つからない

×

42S11

インデクスがすでに存在する

×

42S12

インデクスが見つからない

×

42S21

列がすでに存在する

×

42S22

列が見つからない

×

44000

WITH CHECK OPTION違反

×

5C002

文字コードの変換エラー

変換できない文字コードを検出しました。

5C036

データ変換エラー

設定要求があった入力データの指定内容が誤っています。

5C041

データ型未サポートエラー

ドライバは指定されたデータ型をサポートしていません。

5C051

SQL文のテキスト文字列の長さが,16,000,000文字を超えた

SQL文のテキスト文字列が16,000,000文字以下の場合でも,ドライバマネージャの文字コード変換によって16,000,000文字を超えることがあります。このときも,このSQLSTATEが返されます。

HY000

一般エラー

×

HY001

メモリ割り当てエラー

HY003

無効なCデータ型

HY004

無効なSQLデータ型

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

HY010

関数シーケンスエラー

HY013

メモリ管理エラー

HY014

無効な精度または無効なスケール値

HY090

無効な文字列長または無効なバッファ長

HY104

無効な精度または無効なスケール値

HY105

無効なパラメタの種類

×

HY109

無効なカーソル位置

×

HYC00

オプション機能は実装されていない

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

ドライバはこの関数をサポートしていない

×

(凡例)

○:HADB ODBCドライバが返すことがあるSQLSTATEです。

×:HADB ODBCドライバが返さないSQLSTATEです。

−:なし。

(6) 注意事項