次の方法で共有


JetSetColumns 関数

適用対象: 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