SetParamメソッド

機能

?パラメタに値を設定します。

形式

void SetParam(UINT32 dwIndex,LPCTSTR lpctParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,INT16 sParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,INT32 lParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,UINT16 swParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,UINT32 dwParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,SINGLE sfParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,DOUBLE dfParam) throw DBSQLCA
void SetParam(UINT32 dwIndex,const DBR_DATETIME& dtParam)
                                             throw DBSQLCA
void SetParam(UINT32 dwIndex,const DBR_BINARY& blobParam)
                                             throw DBSQLCA
void SetParam(UINT32 ui32Index,const DBRArrayDataConstPtr&
                                    cpArray) throw DBSQLCA

引数

指定されたパラメタを,データベースの型にキャストして設定します。

dwIndex,ui32Index

1から始まるパラメタの番号を指定します。指定するパラメタの番号は,SQL文中での出現順に割り当てられます。

xxParam(データ型:第2引数を参照してください)

パラメタに設定する値を指定します。

cpArray

インスタンスを保持しているDBRArrayDataConstPtrオブジェクトを指定します。

戻り値

なし

機能詳細

指定されたパラメタの値を設定します。

値は指定するデータ型からデータベース固有の型に変換されます。データ型変換規則については,「7.1 クラスライブラリで扱うデータ型と変換規則」の SetParamメソッドでのデータ型変換規則を参照してください。

SetParamメソッドは,Executeメソッドを実行した後,Openメソッドまでの間に実行してください。

パラメタにNULLを設定したい場合は,SetNullメソッドを使用してください。

引数lpctParamがNULL(LPCTSTR型の変数にNULLを代入して引数に渡した場合,又はNULLをLPCTSTR型にキャストした場合)の時もNULLが設定されます。キャストしないで引数にNULLだけ指定した場合はNULLとはみなしません。

BLOB型データをファイル経由で設定する場合

ExecuteメソッドでTYPE_BLOB_FILEを指定した場合,BLOB型のフィールドに対するSetParamメソッドの引数にはファイル名称を指定します。SetParamTypeメソッドはSetParamメソッドの前に実行してください。

DBR_BINARY型を指定する場合

DBR_BINARY型の各メンバには次の値を設定します。

Length:設定するデータの長さ(単位はバイト)

RealLength:設定不要

Data:実際のデータの領域を指すポインタ

繰り返し列を扱う場合の注意

引数cpArrayで指定するDBRArrayDataConstPtrオブジェクトがインスタンスを保持していない場合は,エラーになります。インスタンスを保持するDBRArrayDataPtrオブジェクトは,次の手順で生成し,引数へ設定します。

  1. DBRArrayDataFactoryオブジェクトのCreateArrayDataメソッドで,DBRArrayDataオブジェクトを生成します。
  2. 新しく繰り返し列を作成する場合だけ,DBRArrayDataオブジェクトのCreateメソッドで要素の格納領域を確保します。
  3. DBRArrayDataオブジェクトのSetDataメソッドで要素の値を設定します。
  4. 引数pArrayにDBRArrayDataPtrオブジェクトを設定し,SetParamメソッドを呼び出します。
  5. ExecuteUpdateメソッドで実行します。

なお,SetParamメソッドで値を設定した後に,DBRArrayDataオブジェクトのSetDataメソッドを実行すると,SetParamメソッド実行時点のデータは失われ,SetDataメソッドに指定した値が設定されるため注意してください。

また,Updateメソッドを実行中に,DBRArrayDataオブジェクトのSetDataメソッドは呼び出せません。

発生する例外

DBSQLCA(RetCode)

DB_ERROR_ARGUMENT_OUT_OF_RANGE
引数dwIndexの範囲が不正です(Execute実行前に実行した場合を含みます)。
DB_ERROR_IN_ASYNC_EXECUTE
ステートメントが非同期実行処理中です。
DB_ERROR_BEFORE_EXECUTE
Executeメソッドが実行されていません。
DB_ERROR_NO_INSTANCE
引数cparArrayに指定されたオブジェクトが,DBRArrayDataPtrクラスのインスタンスを持っていません。
DB_ERROR_CANNOT_ACCESS_WHILE_EXECUTED
Updateメソッドを実行中に,DBRArrayDataオブジェクトのSetDataメソッドを呼び出しました。