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 を使用して異なるセッションによって同時に更新でき、トランザクション整合性を持つことを指定します。
|
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が指定されている場合、 pvDefault は JET_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