JET_COLUMNDEF 構造体

適用対象: Windows |Windows Server

JET_COLUMNDEF 構造体

JET_COLUMNDEF構造体は、列に格納できるデータを定義します。

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wCollate;
      unsigned long cbMax;
      JET_GRBIT grbit;
    } JET_COLUMNDEF;

メンバー

cbStruct

この構造体のサイズ (バイト単位)。 sizeof( JET_COLUMNDEF) に設定する必要があります。

columnid

予約済み。 columnid は 0 (ゼロ) に設定する必要があります。

coltyp

列の型 (テキスト、バイナリ、数値など)。 詳細については、「 JET_COLTYP」を参照してください。

wCountry

予約済み。 wCountry は 0 (ゼロ) に設定する必要があります。

langid

互換性のために残されています。 langid は 0 (ゼロ) に設定する必要があります。

cp

列のコード ページ。 テキスト列の有効な値は、英語 (1252) と Unicode (1200) のみです。 0 の値は、既定値が使用されることを意味します (英語、1252)。 列がテキスト列でない場合、コード ページは自動的に 0 に設定されます。

wCollate

予約済み。 wCollate は 0 (ゼロ) に設定する必要があります。

cbMax

可変長列の最大長 (バイト単位)、または固定長列の長さ。

grbit

この呼び出しに使用するオプションを含むビットのグループ。次の値の 0 個以上が含まれます。

説明

JET_bitColumnFixed

列は固定されます。 列に格納されているデータの量に関係なく、常に 1 行に同じ量の領域が使用されます。 JET_bitColumnFixedは、JET_bitColumnTaggedでは使用できません。 このビットは、長い値 ( JET_coltypLongText および JET_coltypLongBinary) では使用できません。

JET_bitColumnTagged

列にタグが付けられます。 データが含まれていない場合、タグ付けされた列はデータベース内の領域を占有しません。 このビットは、JET_bitColumnFixedでは使用できません。

JET_bitColumnNotNULL

列を NULL 値に設定しないでください。

JET_bitColumnVersion

列は、行のバージョンを指定するバージョン列です。 この列の値は 0 から始まり、行の更新ごとに自動的にインクリメントされます。

このビットは、 JET_coltypLong 列にのみ適用できます。 このビットは、JET_bitColumnAutoincrement、JET_bitColumnEscrowUpdate、またはJET_bitColumnTaggedでは使用できません。

JET_bitColumnAutoincrement

列は自動的にインクリメントされます。 数値は増加する数値であり、テーブル内で一意であることが保証されます。 ただし、数値は連続していない可能性があります。 たとえば、5 行がテーブルに挿入された場合、"autoincrement" 列には値 { 1, 2, 6, 7, 8 } を含めることができます。 このビットは、 JET_coltypLong 型または JET_coltypCurrency型の列でのみ使用できます。

Windows 2000: Windows 2000 では、このビットは JET_coltypLong 型の列でのみ使用できます。

JET_bitColumnUpdatable

このビットは、 JetGetColumnInfo の呼び出しでのみ有効です。

JET_bitColumnTTKey

このビットは、 JetOpenTable の呼び出しでのみ有効です。

JET_bitColumnTTDescending

このビットは、 JetOpenTempTable の呼び出しでのみ有効です。

JET_bitColumnMultiValued

列には複数値を指定できます。 複数値の列には、0 個、1 つ以上の値を関連付けることができます。 複数値列のさまざまな値は、itagSequence メンバーと呼ばれる番号によって識別されます。これは、JET_RETINFO、JET_SETINFOJET_SETCOLUMNJET_RETRIEVECOLUMNJET_ENUMCOLUMNVALUEなど、さまざまな構造体に属します。 複数値の列には、タグ付けされた列を指定する必要があります。つまり、固定長列または可変長列にすることはできません。

JET_bitColumnEscrowUpdate

列がエスクロー更新列であることを指定します。 エスクロー更新列は、 JetEscrowUpdate を使用して異なるセッションによって同時に更新でき、トランザクションの一貫性を維持します。 エスクロー更新列は、次の条件も満たす必要があります。

  • エスクロー更新列は、テーブルが空の場合にのみ作成できます。

  • エスクロー更新列は 、JET_coltypLong型である必要があります。

  • エスクロー更新列には既定値が必要です ( cbDefault は正である必要があります)。

  • JET_bitColumnEscrowUpdateは、JET_bitColumnTagged、JET_bitColumnVersion、またはJET_bitColumnAutoincrementと組み合わせて使用することはできません。

JET_bitColumnUnversioned

列は、バージョン情報のない で作成されます。 つまり、同じ名前の列を追加しようとする他のトランザクションは失敗します。 このビットは、 JetAddColumn でのみ役立ちます。 トランザクション内では使用できません。

JET_bitColumnMaybeNull

将来利用するために予約されています。

JET_bitColumnFinalize

JET_bitColumnFinalizeの代わりにJET_bitColumnDeleteOnZeroを使用します。 列を最終処理できることをJET_bitColumnFinalizeします。 最終処理できる列に 0 に達したエスクロー更新列がある場合、行は削除されます。 今後のバージョンでは、代わりにコールバック関数が呼び出される可能性があります (詳細については、「 JET_CALLBACK」を参照してください)。 最終処理できる列はエスクロー更新列である必要があります。 JET_bitColumnFinalizeは、JET_bitColumnUserDefinedDefaultでは使用できません。

JET_bitColumnUserDefinedDefault

列の既定値は、コールバック関数によって提供されます。 「JET_CALLBACK」を参照してください。 ユーザー定義の既定値を持つ列は、タグ付けされた列である必要があります。 JET_bitColumnUserDefinedDefaultを指定すると、 pvDefaultJET_USERDEFINEDDEFAULT 構造体をポイントする必要があり、 cbDefault は sizeof( JET_USERDEFINEDDEFAULT ) に設定する必要があります。

  • JET_bitColumnUserDefinedDefaultは、JET_bitColumnFixed、JET_bitColumnNotNULL、JET_bitColumnVersion、JET_bitColumnAutoincrement、JET_bitColumnUpdatable、JET_bitColumnEscrowUpdate、JET_bitColumnFinalize、JET_bitColumnDeleteOnZero、またはJET_bitColumnMaybeNullと組み合わせて使用することはできません。

JET_bitColumnDeleteOnZero

列はエスクロー更新列であり、0 に達するとレコードが削除されます。 最終処理できる列の一般的な用途は、参照カウント フィールドとして使用し、フィールドが 0 に達するとレコードが削除されることです。 JET_bitColumnDeleteOnZeroは、JET_bitColumnFinalizeに関連しています。 Delete-on-zero 列はエスクロー更新列である必要があります。 JET_bitColumnDeleteOnZeroは、JET_bitColumnFinalizeでは使用できません。 JET_bitColumnDeleteOnZeroは、ユーザー定義の既定の列では使用できません。

必要条件

要件

Client

Windows Vista、Windows XP、または Windows 2000 Professional が必要です。

[サーバー]

Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。

Header

Esent.h で宣言されています。

参照

JET_CALLBACK
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNID
JET_GRBIT
JET_USERDEFINEDDEFAULT
JetAddColumn
JetEscrowUpdate
JetGetTableColumnInfo
JetOpenTempTable
JetOpenTempTable2
JetOpenTempTable3
JetRenameColumn