共用方式為


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_coltypLongTextJET_coltypLongBinary

JET_bitColumnTagged

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

JET_bitColumnNotNull

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

JET_bitColumnAutoincrement

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

Windows 2000: 這個位只能用於類型 JET_coltypLong的資料行。

Windows Server 2003 和更新版本: 此位只能用於類型 為 JET_coltypLongJET_coltypCurrency的資料行。

JET_bitColumnUpdatable

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

JET_bitColumnTTKey

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

JET_bitColumnTTDescending

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

JET_bitColumnMultiValued

資料行可以是多重值。 多重值資料行可以有零、一或多個與其相關聯的值。 多重值資料行中的各種值是由各種結構的itagSequence成員識別,例如,JET_RETINFOJET_SETINFOJET_SETCOLUMNJET_RETRIEVECOLUMN、JET_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。 具有使用者定義預設值的資料行必須是標記的資料行。 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不能與使用者定義的預設資料行搭配使用。

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