JET_COLUMNCREATE 結構
適用于: Windows |Windows Server
JET_COLUMNCREATE 結構
JET_COLUMNCREATE結構描述在資料庫中建立的資料行。
typedef struct tag_JET_COLUMNCREATE {
unsigned long cbStruct;
tchar* szColumnName;
JET_COLTYP coltyp;
unsigned long cbMax;
JET_GRBIT grbit;
void* pvDefault;
unsigned long cbDefault;
unsigned long cp;
JET_COLUMNID columnid;
JET_ERR err;
} JET_COLUMNCREATE;
成員
cbStruct
結構的大小,以位元組為單位。 此欄位必須初始化為 sizeof ( JET_COLUMNCREATE ) 。
szColumnName
要建立的資料行名稱。 名稱必須符合下列準則:
- 長度必須少於JET_cbNameMost個字元,不包括終止的 Null。
- 它只能包含下列集合中的字元:0 到 9、A 到 Z、 a 到 z,除了驚嘆號 (!) 、逗號 (、) 、左括弧 ([) ] 和右括弧 (]) ,也就是 ASCII 字元0x20、0x22到0x2d、0x2f到0x5a、0x5c 0x5d 0x7f。
- 它不能以空格開頭。
- 它至少必須包含一個非空白字元。
coltyp
資料行 (的類型,例如文字、二進位或數值) 。 如需詳細資訊,請參閱 JET_COLTYP。
cbMax
可變長度資料行的最大長度,以位元組為單位。 固定長度資料行的資料行長度。
grbit
包含這個 結構選項的位群組,其中包含下列零或多個值。
值 |
意義 |
---|---|
JET_bitColumnFixed |
資料行是固定的。 不論資料行中儲存多少資料,它一律會使用相同的資料列空間量。 JET_bitColumnFixed不能與 JET_bitColumnTagged搭配使用。 這個位不能與長值搭配使用,例如 JET_coltypLongText 和 JET_coltypLongBinary。 |
JET_bitColumnTagged |
資料行已標記。 如果標記的資料行不包含資料,則不會佔用資料庫中的任何空間。 此位不能與JET_bitColumnFixed搭配使用。 |
JET_bitColumnNotNull |
資料行絕對不能設定為 Null 值。 |
JET_bitColumnAutoincrement |
資料行會自動遞增。 數位是增加的數位,而且保證在資料表內是唯一的。 不過,數位可能不是連續的。 例如,如果五個數據列插入資料表中,自動建立資料行可以包含值 { 1, 2, 6, 7, 8 }。 Windows 2000: 這個位只能用於類型 JET_coltypLong的資料行。 Windows Server 2003 和更新版本: 此位只能用於類型 為 JET_coltypLong 或 JET_coltypCurrency的資料行。 |
JET_bitColumnUpdatable |
這個位只有在對 JetGetColumnInfo的呼叫時才有效。 |
JET_bitColumnTTKey |
這個位只有在 JetOpenTempTable的呼叫時才有效。 |
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。 具有使用者定義預設值的資料行必須是標記的資料行。 pvDefault 必須指向 JET_USERDEFINEDDEFAULT 結構, 而 cbDefault 必須設定為 sizeof (JET_USERDEFINEDDEFAULT) 。 JET_bitColumnUserDefinedDefault不能與下列常數搭配使用:
|
JET_bitColumnDeleteOnZero |
資料行是委付更新資料行,且達到零時,將會刪除記錄。 可以完成之資料行的常見用法是將其當做參考計數位段使用,而當欄位達到零時,就會刪除記錄。 JET_bitColumnDeleteOnZero與JET_bitColumnFinalize相關。 刪除零資料行必須是委付更新資料行。 JET_bitColumnDeleteOnZero無法與JET_bitColumnFinalize搭配使用。 JET_bitColumnDeleteOnZero不能與使用者定義的預設資料行搭配使用。 |
pvDefault
指向緩衝區,這是資料行的預設值。 緩衝區的長度為 cbDefault。 如果沒有預設值, pvDefault 應該設定為 Null, 而 cbDefault 應設定為零。 如果 grbit 已設定JET_bitColumnUserDefinedDefault, pvDefault 將會解譯為JET_USERDEFINEDDEFAULT結構的指標。 預設值不能大於 255 個位元組。 如果預設值大於 255 個位元組,則會以無訊息方式截斷。
cbDefault
pvDefault所指定緩衝區的大小,以位元組為單位。
cp
資料行的字碼頁。 文字資料行的唯一有效值為英文 (1252) 和 Unicode (1200) 。 值為零表示預設值將用於英文、1252) (。 如果資料行不是文字資料行,字碼頁會自動設定為零。
columnid
成功時,新建立資料行的資料行識別碼將會在此欄位中傳回。 失敗時,此值為未定義。
err
err欄位將包含建立此資料行的狀態。 如需可能傳回值的清單,請參閱 JetAddColumn 。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |
Unicode |
實作為JET_COLUMNCREATE_W (Unicode ) 和 JET_COLUMNCREATE_A (ANSI) 。 |
另請參閱
JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns