SetFieldメソッド

機能

指定されたフィールドにデータを設定します。

形式

インデクスで指定する場合

void SetField(UINT32 dwIndex,INT16 sData) throw DBSQLCA
void SetField(UINT32 dwIndex,INT32 lData) throw DBSQLCA
void SetField(UINT32 dwIndex,UINT16 swData) throw DBSQLCA
void SetField(UINT32 dwIndex,UINT32 dwData) throw DBSQLCA
void SetField(UINT32 dwIndex,SINGLE sfData) throw DBSQLCA
void SetField(UINT32 dwIndex,DOUBLE dfData) throw DBSQLCA
void SetField(UINT32 dwIndex,LPCTSTR lpctData) throw DBSQLCA
void SetField(UINT32 dwIndex,const DBR_DATETIME& dtData)
                                               throw DBSQLCA
void SetField(UINT32 dwIndex,const DBR_BINARY& blobData)
                                               throw DBSQLCA
void SetField(UINT32 ui32Index,const DBRArrayDataConstPtr&
                                     cparData) throw DBSQLCA

フィールド名で指定する場合

void SetField(LPCTSTR lpctFieldName,INT16 sData) throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,INT32 lData) throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,UINT16 swData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,UINT32 dwData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,SINGLE sfData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,DOUBLE dfData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,LPCTSTR lpctData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,const DBR_DATETIME& dtData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,const DBR_BINARY& blobData)
                                                 throw DBSQLCA
void SetField(LPCTSTR lpctFieldName,const DBRArrayDataConstPtr&
                                       cparData) throw DBSQLCA

引数

dwIndex, ui32Index

1から始まるフィールドの番号を指定します。指定するフィールドの番号は,SQL文中での出現順に割り当てられます。

lpctFieldName

フィールド名を指定します。

xxData(形式の第2引数)

設定する値を指定します。

戻り値

なし

機能詳細

カレントレコードのフィールドに値を設定します。

更新可能なResultSetに対して指定できます。Editメソッドを呼び出した後に実行してください。

値はデータベースのデータ型に合わせて変換されます。データ型の変換規則については,「7.1 クラスライブラリで扱うデータ型と変換規則」のSetFieldメソッドでのデータ型変換規則を参照してください。

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

ExecuteメソッドでTYPE_BLOB_FILEを指定した場合,BLOB型のフィールドに対するSetFieldメソッドの引数にはファイル名称を指定します。この場合,SetFieldメソッドの引数の型には,文字列と同じLPCTSTRを使います。

DBR_BINARY型を指定する場合

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

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

RealLength:設定不要

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

繰り返し列を扱う場合

引数cparDataにDBArrayDataオブジェクトを指定します。DBRArrayDataオブジェクトはDBRArrayDataFactoryクラスを利用して事前に生成しておく必要があります。なお,これ以外の引数には,繰り返し列は指定できません。

また,引数cparDataに指定されたオブジェクトが,DBRArrayDataクラスのインスタンスを持っていない場合は,エラーになります。

SetFieldメソッドで値を設定した後,DBRArrayDataオブジェクトのSetDataメソッドを実行すると,SetFieldメソッド実行時点のデータは失われて,SetDataメソッドで設定したデータに置き換わるため注意が必要です。

XDM/RDで更新できる型の制限

LONG VARCHAR型,LONG NVARCHAR型,LONG MVARCHAR型のフィールドについては更新できません。

発生する例外

DBSQLCA(RetCode)

DB_ERROR_NOT_ENOUGH_MEMORY
メモリ容量が不足しています。
DB_ERROR_NOT_FOUND
引数dwIndexの範囲,又は引数lpctFieldNameが不正です。
DB_ERROR_CANNOT_BE_NULL
引数lpctFieldNameにNULLを指定しています。
DB_ERROR_NOT_IN_EDIT
Editメソッドが実行されていません。
DB_ERROR_DATA_TRUNCATED
取得した値を指定した型に変換できません。
DB_ERROR_RESULTSET_NOT_EXIST
非同期実行時に,検索結果がまだ取得できていません。
DB_DRV_ERROR_INVALID_ARGUMENT
引数に指定したフィールド名は不正です。
DB_ERROR_NO_INSTANCE
引数cparDataに指定されたオブジェクトが,DBRArrayDataクラスのインスタンスを持っていません。
DB_ERROR_CONVERT_ARRAY_TO_SCALAR
引数cparDataに繰り返し列以外のフィールド値を設定しようとしました,又は引数cparData以外の引数に繰り返し列の値を設定しようとしました。
DB_ERROR_CANNOT_ACCESS_WHILE_EXECUTED
Updateメソッドを実行中に,DBRArrayDataオブジェクトのSetDataメソッドを呼び出しました。