Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.7.1 SQLPrepare,SQLPrepareW

〈この項の構成〉

(1) 機能

SQL文をデータソースに送り,SQL文の前処理を実行します。

(2) 形式

(3) 引数

StatementHandle

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

StatementText

SQL文字列を指定します。SQL文字列中に,注釈(/**/)は指定できませんが,インデクス指定(/*>><<*/)などは指定できます。

TextLength

*StatementTextの長さを指定します(単位:SQLPrepareの場合はバイト長,SQLPrepareWの場合は文字数)。

StatementTextに指定したSQL文字列がNULL終端文字を保証している場合,SQL_NTSを指定できます。

(4) 戻り値

SQL_SUCCESSSQL_SUCCESS_WITH_INFOSQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

×

01S02

オプション値の変更

×

08S01

通信リンク失敗

×

21S01

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

×

21S02

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

×

22018

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

×

22019

無効なエスケープ文字

×

22025

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

×

24000

無効なカーソル状態

×

34000

無効なカーソル名

×

3D000

無効なカタログ名

×

3F000

無効なスキーマ名

×

42000

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

×

42S01

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

×

42S02

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

×

42S11

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

×

42S12

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

×

42S21

列がすでに存在する

×

42S22

列が見つからない

×

5C002

文字コードの変換エラー

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

5C041

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

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

5C051

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

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

HY000

一般エラー

×

HY001

メモリ割り当てエラー

ドライバは,関数の実行または完了をサポートするメモリを割り当てられません。

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

StatementTextにNULLポインタが指定されています。

HY010

関数シーケンスエラー

HY013

メモリ管理エラー

×

HY090

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

TextLengthに0以下で,SQL_NTS以外の値が指定されています。

HY117

接続がサスペンド中

×

HYC00

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

×

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

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

×

IM017

非同期ポーリングが不正

×

IM018

非同期実行が未完了

×

(凡例)

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

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

−:なし。