共用方式為


JET_COLUMNBASE 結構

適用于: Windows |Windows Server

JET_COLUMNBASE 結構

JET_COLUMNBASE結構描述基底資料行的參數。 JetGetColumnInfoJetGetTableColumnInfo函式會使用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) 。 值為零表示預設值將用於英文、1252) (。 如果資料行不是文字資料行,字碼頁會自動設定為零。

wFiller

保留的。 設定為 0 (零) 。

cbMax

可變長度資料行的最大長度、以位元組為單位,或固定長度資料行的實際長度,以位元組為單位。

grbit

資料行的選項,包括下列零個或多個值。

意義

JET_bitColumnFixed

資料行是固定的,而且會佔用資料列中相同的空間量,而不論其包含的資料量為何。 JET_bitColumnFixed無法與JET_bitColumnTagged結合,而且當 coltyp 成員設定為 JET_coltypLongTextJET_coltypLongBinary時,就無法使用。

JET_bitColumnTagged

只有當資料包含資料時,資料行才會標記並佔用資料庫中的空間。 JET_bitColumnTagged無法與JET_bitColumnFixed、JET_bitColumnVersion或JET_bitColumnEscrowUpdate結合。

JET_bitColumnNotNull

資料行不得設定為 Null 值。

JET_bitColumnNotNull無法與JET_bitColumnUserDefinedDefault合併。

JET_bitColumnVersion

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

只有當 coltyp 成員設定為 JET_coltypLong 且無法與JET_bitColumnAutoincrement、JET_bitColumnEscrowUpdate、JET_bitColumnTagged或JET_bitColumnUserDefinedDefault結合時,才能使用JET_bitColumnVersion。

JET_bitColumnAutoincrement

資料行會自動遞增。 此數位是遞增的數位,而且保證在資料表內是唯一的。 不過,數位可能不是循序的。 例如,如果五個數據列插入資料表中,自動遞增的資料行可能會包含值 { 1, 2, 6, 7, 8 }。

只有當 coltyp 成員設定為 JET_coltypLongJET_coltypCurrency ,且無法與JET_bitColumnEscrowUpdate、JET_bitColumnUserDefinedDefault或JET_bitColumnVersion結合時,才能使用JET_bitColumnAutoincrement。

Windows 2000: 只有當 coltyp 成員設定為 JET_coltypLong 時,才能使用 JET_bitColumnVersion

JET_bitColumnUpdatable

僅適用于 JetGetColumnInfo的呼叫。 JET_bitColumnUpdatable無法與JET_bitColumnUserDefinedDefault結合。

JET_bitColumnTTKey

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

JET_bitColumnTTDescending

只有在 對 JetOpenTempTable的呼叫時才有效。

JET_bitColumnMultiValued

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

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。

資料行可以完成。 可以完成的資料行是一個委付更新資料行,會在資料行達到零時刪除資料列。 未來的版本可能會叫用回呼函式, (請參閱 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_bitColumnUserDefinedDefault結合,而且不能與使用者定義的預設資料行搭配使用。

szBaseTableName

目前資料表繼承其 DDL 的資料表。

szBaseColumnName

範本資料表中的資料行名稱。

備註

JET_COLUMNBASE 包含與 JET_COLUMNDEF相同的資訊,但是它會新增字串欄位來描述基表, (如果使用階層式 DDL) 。

規格需求

需求

用戶端

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

Server

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

標頭

在 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