適用対象: Windows |Windows Server
JetSetColumns 関数
JetSetColumns 関数の動作は JetSetColumn と似ていますが、アプリケーションでは 1 回の操作で複数の列値を設定できます。 JET_SETCOLUMN構造体の配列は、設定する列値のセットを記述し、設定する各列値の入力バッファーを記述するために使用されます。
JET_ERR JET_API JetSetColumns(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_out_opt JET_SETCOLUMN* psetcolumn,
__in unsigned long csetcolumn
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid を する
この呼び出しに使用するカーソル。
psetcolumn
1 つ以上の JET_SETCOLUMN 構造体の配列へのポインター。 各構造体には、設定する列値と、設定する列データを取得する場所の説明が含まれます。
csetcolumn
psetcolumn によって指定された配列内のJET_SETCOLUMN構造体の数。
戻り値
この関数は、次のいずれかのリターン コードを含 むJET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジンエラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errBadColumnId |
指定された列 ID は、列 ID の法的制限外です。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられているインスタンスのすべてのアクティビティが停止したため、操作を完了することはできません。 |
JET_errColumnIllegalNull |
JET_errNullInvalidと同じです。 |
JET_errColumnNotFound |
指定された columnid によって記述された列がテーブルに存在しません。 |
JET_errColumnNotUpdatable |
コピーの挿入削除の元の更新操作中に、長い値を更新しようとしました。 |
JET_errColumnTooBig |
入力バッファーで指定された列値データが、固定長列の場合は自然であるか、固定長テキスト列またはバイナリ列用に構成されているサイズ制限を超えています。 このエラーは、長い列に 1024 バイトを超えるデータを渡し、JET_bitSetIntrinsicLV フラグを設定するときにも返されます。 |
インスタンスが利用できません |
セッションに関連付けられているインスタンスで、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したため、操作を完了することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errInvalidBufferSize |
指定された列値のデータ サイズが、固定長データ型の自然なサイズと一致しません。 |
JET_errInvalidColumnType |
挿入操作または更新操作中に自動インクリメント列を更新したり、置換操作中にバージョン列を更新したりしようとしました。 |
JET_errInvalidgrbit |
指定されたオプションは不明か、既知のビット設定の無効な組み合わせです。 |
JET_errInvalidParameter |
指定された psetinfo->cbStruct は、 JET_SETINFO 構造体の有効なサイズではありません。 |
JET_errMultiValuedDuplicate |
列の設定操作で重複する値を作成しようとしましたが、JET_bitSetUniqueMultiValuesまたはJET_bitSetUniqueNormalizedMultiValuesを指定しました。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errNotInTransaction |
呼び出し元のセッションがトランザクションに含まれていないときに、長い列の値を更新しようとしました。 |
JET_errNullInvalid |
NULL 以外の列を NULL に設定しようとしました。 |
JET_errRecordTooBig |
列の値を入力バッファー内の値に設定できませんでした。これは、レコードがページ サイズに関連するサイズ制限を超える原因となったためです。 JET_coltypLongText型またはJET_coltypLongBinary型の列は、残りのレコード データとは別に格納できます。 ただし、他の列はレコードと共に格納する必要があり、レコード サイズの制限を超える可能性があります。 長い列でも、リンケージとしてレコード内に 5 バイトのスペースが必要です。これにより、JET_errRecordTooBigが返される可能性もあります。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
JET_errUpdateNotPrepared |
カーソルは現在、新しいレコードの挿入または既存のレコードの更新の処理中ではありません。 |
JET_wrnColumnMaxTruncated |
入力バッファー内の列値が可変長列に対して構成された最大長を超え、切り捨てられました。 |
成功すると、psetcolumns で説明されている各列に対して、列値の目的の部分が入力バッファーからコピーされたデータで設定されます。 可変長列に指定された最大長を超えた場合、列データ・セットが切り捨てられた可能性があります。
失敗した場合、カーソル位置は変更されず、コピー バッファー内の列値データは更新されません。
注釈
個々のセット列操作でエラーが返された場合、 JetSetColumns 操作全体でエラーが返されます。 一般に、警告は psetcolumns-> エラーで返され、この関数からのリターン コードには返されません。 ただし、最後の列セットに警告がある場合、この警告は JetSetColumns 自体から返されます。
要求事項
要件 | 価値 |
---|---|
クライアント |
Windows Vista、Windows XP、または Windows 2000 Professional が必要です。 |
サーバー |
Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。 |
ヘッダー |
Esent.h で宣言されています。 |
図書館 |
ESENT.lib を使用します。 |
DLL |
ESENT.dllが必要です。 |
こちらもご覧ください
JET_COLTYP
JET_ERR
JET_SESID
JET_TABLEID
JET_SETCOLUMN
JetRetrieveColumns
JetSetColumn