次の方法で共有


JET_COLUMNBASE 構造体

適用対象: Windows |Windows Server

JET_COLUMNBASE 構造体

JET_COLUMNBASE構造体は、ベース列のパラメーターを記述します。 JetGetColumnInfo 関数と JetGetTableColumnInfo 関数は、JET_COLUMNBASE構造体を使用します。

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wFiller;
      unsigned long cbMax;
      JET_GRBIT grbit;
      tchar szBaseTableName[256];
      tchar szBaseColumnName[256];
    } JET_COLUMNBASE;

メンバー

cbStruct

この構造体のサイズ (バイト単位)。 cbStruct を sizeof( JET_COLUMNBASE ) に設定します。

columnid

予約済み。 columnid を 0 (ゼロ) に設定します。

coltyp

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

wCountry

予約済み。 0 (ゼロ) に設定します。

langid

予約済み。 0 (ゼロ) に設定します。

cp

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

wFiller

予約済み。 0 (ゼロ) に設定します。

cbMax

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

grbit

次の値の 0 個以上を含む列のオプション。

説明

JET_bitColumnFixed

列は固定されており、格納されているデータの量に関係なく、行内の同じ量の領域を占有します。 JET_bitColumnFixedをJET_bitColumnTaggedと組み合わせることはできません。 また、coltyp メンバーが JET_coltypLongText または JET_coltypLongBinary に設定されている場合は使用できません。

JET_bitColumnTagged

列はタグ付けされ、データが含まれている場合にのみデータベース内の領域を占有します。 JET_bitColumnTaggedは、JET_bitColumnFixed、JET_bitColumnVersion、またはJET_bitColumnEscrowUpdateと組み合わせることはできません。

JET_bitColumnNotNULL

列を NULL 値に設定することはできません。

JET_bitColumnNotNULLをJET_bitColumnUserDefinedDefaultと組み合わせることはできません。

JET_bitColumnVersion

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

JET_bitColumnVersionは 、coltyp メンバーが JET_coltypLong に設定されていて、 JET_bitColumnAutoincrement、JET_bitColumnEscrowUpdate 、JET_bitColumnTagged、またはJET_bitColumnUserDefinedDefaultと組み合わせることができない場合にのみ使用できます。

JET_bitColumnAutoincrement

列は自動的にインクリメントされます。 数値は増加する数値であり、テーブル内で一意であることが保証されます。 ただし、数値はシーケンシャルでない場合があります。 たとえば、5 行がテーブルに挿入された場合、自動的にインクリメントされる列には値 { 1, 2, 6, 7, 8 } が含まれる可能性があります。

JET_bitColumnAutoincrementは、 coltyp メンバーが JET_coltypLong または JET_coltypCurrency に設定されていて、 JET_bitColumnEscrowUpdate、JET_bitColumnUserDefinedDefault 、またはJET_bitColumnVersionと組み合わせることができない場合にのみ使用できます。

Windows 2000: JET_bitColumnVersionは、 coltyp メンバーが JET_coltypLong に設定されている場合にのみ使用できます。

JET_bitColumnUpdatable

JetGetColumnInfo の呼び出しに対してのみ有効です。 JET_bitColumnUpdatableをJET_bitColumnUserDefinedDefaultと組み合わせることはできません。

JET_bitColumnTTKey

JetOpenTable の呼び出しでのみ有効です。

JET_bitColumnTTDescending

JetOpenTempTable の呼び出しでのみ有効です。

JET_bitColumnMultiValued

列には複数値を指定できます。 複数値の列には、0 個、1 つ以上の値を関連付けることができます。 複数値列のさまざまな値は、JET_RETINFO、JET_SETINFO、JET_SETCOLUMN、JET_RETRIEVECOLUMN、JET_ENUMCOLUMNVALUEなど、さまざまな構造体の itagSequence メンバー内の数値によって識別されます。 複数値の列には、タグ付けされた列を指定する必要があります。つまり、固定長列または可変長列ではない可能性があります。

JET_bitColumnEscrowUpdate

列がエスクロー更新列であり、 JetEscrowUpdate を使用して異なるセッションによって同時に更新でき、トランザクション整合性を持つことを指定します。

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

  • エスクロー更新列の場合、 coltyp メンバーを JET_coltypLong に設定する必要があります

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

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

JET_bitColumnUnversioned

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

JET_bitColumnMaybeNull

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

JET_bitColumnMaybeNullをJET_bitColumnUserDefinedDefaultと組み合わせることはできません。

JET_bitColumnFinalize

使用しないでください。 代わりに JET_bitColumnDeleteOnZero を使用してください。

列は最終処理できます。 最終処理できる列はエスクロー更新列であり、列が 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を置き換えます。

JET_bitColumnDeleteOnZeroをJET_bitColumnFinalizeまたはJET_bitColumnUserDefinedDefaultと組み合わせることはできません。また、ユーザー定義の既定の列では使用できません。

szBaseTableName

現在のテーブルが DDL を継承するテーブル。

szBaseColumnName

テンプレート テーブル内の列の名前。

解説

JET_COLUMNBASE には 、JET_COLUMNDEFと同じ情報の多くが含まれていますが、ベース テーブルを記述するために文字列フィールドが追加されます (階層 DDL が使用されている場合)。

必要条件

要件

Client

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

[サーバー]

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

Header

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

Unicode

JET_COLUMNBASE_W (Unicode) およびJET_COLUMNBASE_A (ANSI) として実装されます。

参照

JET_CALLBACK
JET_COLTYP
JET_COLUMNDEF
JET_COLUMNID
JET_GRBIT
JET_SESID
JET_TABLEID
JET_USERDEFINEDDEFAULT
JetGetColumnInfo
JetGetTableColumnInfo
JetRenameColumn