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) 。 值為零表示預設值將使用 (英文、1252) 。 如果資料行不是文字資料行,則字碼頁會自動設定為零。

wCollate

保留的。 wCollate 必須設定為 0 (零) 。

cbMax

可變長度資料行的最大長度,或固定長度資料行的長度上限。

grbit

一組位,其中包含要用於這個呼叫的選項,其中包含下列零或多個值。

意義

JET_bitColumnFixed

資料行將會修正。 不論資料行中儲存多少資料,它一律會使用相同的資料列空間量。 JET_bitColumnFixed不能與 JET_bitColumnTagged搭配使用。 這個位不能與 JET_coltypLongTextJET_coltypLongBinary) (搭配使用。

JET_bitColumnTagged

將會標記資料行。 如果標記的資料行不包含資料,則不會佔用資料庫中的任何空間。 此位不能與JET_bitColumnFixed搭配使用。

JET_bitColumnNotNull

資料行絕對不能設定為 Null 值。

JET_bitColumnVersion

資料行是指定資料列版本的版本資料行。 此資料行的值會從零開始,並會自動遞增資料列上每個更新。

此位只能套用至 JET_coltypLong 資料行。 此位不能與JET_bitColumnAutoincrement、JET_bitColumnEscrowUpdate或JET_bitColumnTagged搭配使用。

JET_bitColumnAutoincrement

資料行會自動遞增。 數位是增加的數位,而且保證在資料表內是唯一的。 不過,數位可能不是連續的。 例如,如果五個數據列插入資料表中,「autoincrement」 資料行可以包含值 { 1, 2, 6, 7, 8 }。 此位只能用於類型 為 JET_coltypLongJET_coltypCurrency的資料行。

Windows 2000: 在 Windows 2000 中,此位只能用於類型 為 JET_coltypLong的資料行。

JET_bitColumnUpdatable

這個位只有在對 JetGetColumnInfo的呼叫時才有效。

JET_bitColumnTTKey

此位只有在對 JetOpenTable的呼叫時才有效。

JET_bitColumnTTDescending

這個位只有在 JetOpenTempTable的呼叫時才有效。

JET_bitColumnMultiValued

資料行可以是多重值。 多重值資料行可以有零、一或多個與其相關聯的值。 多重值資料行中的各種值是由稱為 itagSequence 成員的數位來識別,其屬於各種結構,包括: JET_RETINFOJET_SETINFOJET_SETCOLUMNJET_RETRIEVECOLUMNJET_ENUMCOLUMNVALUE。 多重值資料行必須標記資料行;也就是說,它們不能是固定長度或可變長度的資料行。

JET_bitColumnEscrowUpdate

指定資料行是委付更新資料行。 使用 JetEscrowUpdate 的不同會話可以同時更新委付更新資料行,並維持交易一致性。 委付更新資料行也必須符合下列條件:

  • 只有在資料表是空的時,才能建立委付更新資料行。

  • escrow 更新資料行的類型必須為 JET_coltypLong

  • escrow 更新資料行必須具有預設值, (cbDefault 必須是正數) 。

  • JET_bitColumnEscrowUpdate不能與JET_bitColumnTagged、JET_bitColumnVersion或JET_bitColumnAutoincrement搭配使用。

JET_bitColumnUnversioned

資料行將會在 中建立,而不需要版本資訊。 這表示嘗試新增具有相同名稱的資料行的其他交易將會失敗。 此位僅適用于 JetAddColumn。 它不能在交易內使用。

JET_bitColumnMaybeNull

保留供未來使用。

JET_bitColumnFinalize

使用 JET_bitColumnDeleteOnZero,而不是使用 JET_bitColumnFinalize。 JET_bitColumnFinalize可以完成資料行。 當可完成的資料行具有達到零的委付更新資料行時,將會刪除資料列。 未來的版本可能會改為叫用回呼函式 (如需詳細資訊,請參閱 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

資料行是委付更新資料行,且達到零時,將會刪除記錄。 可以完成之資料行的常見用法是將其當做參考計數位段使用,而當欄位達到零時,就會刪除記錄。 JET_bitColumnDeleteOnZero與JET_bitColumnFinalize相關。 刪除零資料行必須是委付更新資料行。 JET_bitColumnDeleteOnZero不能與 JET_bitColumnFinalize搭配使用。 JET_bitColumnDeleteOnZero不能與使用者定義的預設資料行搭配使用。

規格需求

需求

用戶端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

Server

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

標頭

在 Esent.h 中宣告。

另請參閱

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