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_coltypLongText 和 JET_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_coltypLong 或 JET_coltypCurrency的資料行。 Windows 2000: 在 Windows 2000 中,此位只能用於類型 為 JET_coltypLong的資料行。 |
JET_bitColumnUpdatable |
這個位只有在對 JetGetColumnInfo的呼叫時才有效。 |
JET_bitColumnTTKey |
此位只有在對 JetOpenTable的呼叫時才有效。 |
JET_bitColumnTTDescending |
這個位只有在 JetOpenTempTable的呼叫時才有效。 |
JET_bitColumnMultiValued |
資料行可以是多重值。 多重值資料行可以有零、一或多個與其相關聯的值。 多重值資料行中的各種值是由稱為 itagSequence 成員的數位來識別,其屬於各種結構,包括: JET_RETINFO、 JET_SETINFO、 JET_SETCOLUMN、 JET_RETRIEVECOLUMN和 JET_ENUMCOLUMNVALUE。 多重值資料行必須標記資料行;也就是說,它們不能是固定長度或可變長度的資料行。 |
JET_bitColumnEscrowUpdate |
指定資料行是委付更新資料行。 使用 JetEscrowUpdate 的不同會話可以同時更新委付更新資料行,並維持交易一致性。 委付更新資料行也必須符合下列條件:
|
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_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