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

レコード番号・インデクス番号で指定する場合

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

引数

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

dwIndex

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

dwRow

1から始まるパラメタを設定するレコード番号を指定します。

xxParam(データ型:インデクス番号で指定する場合の第2引数,レコード番号・インデクス番号で指定する場合の第3引数を参照してください)

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

cpArray

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

戻り値

なし

機能詳細

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

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

SetParamメソッドはExecuteUpdateメソッドの前,ExecuteとGetResultSetの間に実行してください。

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

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

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

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

DBR_BINARY型を指定する場合

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

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

RealLength:設定不要

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

レコード番号の指定

1レコードだけを挿入する場合には,インデクス番号と設定するデータだけを指定します。複数のレコードを一度に挿入する場合,DABrokerで確保された領域のどのレコード番号に対する処理なのかをアプリケーションから指定する必要があります。引数dwRowにはSetParamを実行するレコード番号を,SetInsertRowsメソッドで設定した範囲内の値で指定します。

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

引数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
引数dwRow,又は引数dwIndexの範囲が不正です(Execute実行前に実行した場合を含みます)。
DB_ERROR_IN_ASYNC_EXECUTE
ステートメントが非同期実行処理中です。
DB_ERROR_CANNOT_BE_NULL
引数にNULLは指定できません。
DB_ERROR_NOT_ENOUGH_MEMORY
メモリ容量が不足しました。
DB_ERROR_NO_INSTANCE
引数cparArrayに指定されたオブジェクトが,DBRArrayDataPtrクラスのインスタンスを持っていません。
DB_ERROR_CANNOT_ACCESS_WHILE_EXECUTED
Updateメソッドを実行中に,DBRArrayDataオブジェクトのSetDataメソッドを呼び出しました。