共用方式為


JetSetColumnDefaultValue 函式

適用于: Windows |Windows Server

JetSetColumnDefaultValue 函式

JetSetColumnDefaultValue函式可用來變更現有資料行的預設值。

    JET_ERR JET_API JetSetColumnDefaultValue(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          JET_PCSTR szTableName,
      __in          JET_PCSTR szColumnName,
      __in          const void* pvData,
      __in          const unsigned long cbData,
      __in          const JET_GRBIT grbit
    );

參數

sesid

要用於這個呼叫的會話。

dbid

要用於這個呼叫的資料庫。

szTableName

包含受影響資料行的資料表名稱。

szColumnName

將變更其預設值的資料行名稱。

pvData

包含新預設值的輸入緩衝區。

cbData

包含新預設值的輸入緩衝區大小。

grbit

保留供未來使用。

傳回值

此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤錯誤處理參數

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errClientRequestToStopJetService

無法完成作業,因為與會話相關聯之實例上的所有活動因 JetStopService呼叫而停止。

JET_errColumnIllegalNull

與JET_errNullInvalid相同。

JET_errColumnInUse

這個指定的資料行目前正由索引使用。

JetSetColumnDefaultValue 無法變更索引定義中所參考之資料行的預設值。 這是因為這樣做可能會變更索引的內容。

JET_errColumnNotFound

這個指定的資料行不存在於這個資料表中。

JET_errInstanceUnavailable

無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。

JET_errInvalidDatabaseId

指定的資料庫識別碼無效。

JET_errInvalidName

其中一個指定的物件名稱無效。 所有物件名稱都必須符合相同的規則集。 這些規則如下:

  • 物件名稱必須由 ASCII 字元組成。

  • 物件名稱長度必須至少為一個字元。

  • 物件名稱長度不能超過 JET_cbNameMost (64) 個字元。

  • 物件名稱開頭不一定是空格。

  • 物件名稱不能包含透過 0x1F) (0x00 ASCII 控制字元。

  • 物件名稱不能包含驚嘆號 (!) 、句號 (.) 、左括弧 ([) ]或右括弧 (]) 字元。

  • 一旦驗證之後,只有在物件名稱使用任何) 時,字串的第一個空格才會 (部分。 這表示物件名稱不能包含空格。

JET_errNotInitialized

無法完成作業,因為與會話相關聯的實例尚未初始化。

JET_errNullInvalid

資料行無法設定為 Null。 當下列情況時 ,JetSetColumnDefaultValue 就會發生此情況:

  • cbData 為零。

  • pvData 為 Null。

因此,無法將資料行的預設值 (回到 Null 或零長度值) 。

JET_errObjectNotFound

這個指定的資料表不存在於這個資料庫。

JET_errRestoreInProgress

無法完成作業,因為與會話相關聯的實例上正在進行還原作業。

JET_errSessionSharingViolation

同一個會話不能同時用於一個以上的執行緒。 此錯誤只會由 Windows XP 和更新版本傳回。

JET_errTableInUse

這個指定的資料表正由另一個會話使用。

JetSetColumnDefaultValue 需要資料表的獨佔存取權,才能變更 Windows Server 2003 之前版本的資料行預設值。

JET_errTermInProgress

無法完成作業,因為與會話相關聯的實例正在關閉。

JET_errTransReadOnly

在唯讀交易的範圍內嘗試更新不合法。 唯讀交易是一項交易,其已使用 對 JetBeginTransaction2 的呼叫搭配 JET_bitTransactionReadOnly 來啟動。 此錯誤只會由 Windows XP 和更新版本傳回。

JET_errWriteConflict

另一個會話先前已鎖定記錄以進行更新。 此會話嘗試的更新將會失敗。

成功時,指定資料庫中指定資料表中指定資料行的預設值會永久變更為新的預設值。

失敗時,不會變更資料庫狀態。

備註

您無法變更範本資料表中資料行的預設值。

資料庫引擎會以無訊息方式將資料行的預設值截斷為長文字和長二進位資料行的 255 位元組。

規格需求

需求

用戶端

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

Server

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

標頭

在 Esent.h 中宣告。

程式庫

使用 ESENT.lib。

Dll

需要ESENT.dll。

Unicode

實作為 JetSetColumnDefaultValueW (Unicode) 和 JetSetColumnDefaultValueA (ANSI) 。

另請參閱

JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction2
JetStopService