JetSetColumns 函式
適用于: Windows |Windows Server
JetSetColumns 函式
JetSetColumns函式的行為類似于JetSetColumn,但允許應用程式在單一作業中設定多個資料行值。 JET_SETCOLUMN結構的陣列可用來描述要設定的資料行值集,以及描述要設定之每個資料行值的輸入緩衝區。
JET_ERR JET_API JetSetColumns(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_out_opt JET_SETCOLUMN* psetcolumn,
__in unsigned long csetcolumn
);
參數
sesid
要用於這個呼叫的會話。
tableid
要用於這個呼叫的資料指標。
psetcolumn
一或多個 JET_SETCOLUMN 結構的陣列指標。 每個結構都包含要設定的資料行值,以及要從何處取得要設定的資料行資料。
csetcolumn
psetcolumn所指定陣列中的JET_SETCOLUMN結構數目。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errBadColumnId |
指定的資料行識別碼超出資料行識別碼的法律限制。 |
JET_errClientRequestToStopJetService |
因為與會話相關聯的實例上的所有活動因為對 JetStopService的呼叫而停止,所以無法完成作業。 |
JET_errColumnIllegalNull |
與JET_errNullInvalid相同。 |
JET_errColumnNotFound |
指定的 columnid 所描述的資料行不存在於資料表中。 |
JET_errColumnNotUpdatable |
嘗試在插入複製刪除原始更新作業期間更新長值時發生不合法的嘗試。 |
JET_errColumnTooBig |
輸入緩衝區中指定的指定資料行值資料超過固定長度資料行的自然大小限制,或設定為固定長度文字或二進位資料行。 當針對長資料行傳遞超過 1024 個位元組的資料,並設定JET_bitSetIntrinsicLV旗標時,也會傳回此錯誤。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errInvalidBufferSize |
指定的資料行值資料大小不符合固定長度資料類型的自然值。 |
JET_errInvalidColumnType |
嘗試在插入或更新作業期間更新自動遞增資料行,或在取代作業期間更新版本資料行。 |
JET_errInvalidgrbit |
所提供的選項是未知或不合法的已知位設定組合。 |
JET_errInvalidParameter |
指定的 psetinfo-cbStruct > 不是 JET_SETINFO 結構的有效大小。 |
JET_errMultiValuedDuplicate |
設定資料行作業嘗試建立重複的值,並指定JET_bitSetUniqueMultiValues或JET_bitSetUniqueNormalizedMultiValues。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errNotInTransaction |
當呼叫會話不在交易中時,嘗試更新長資料行值。 |
JET_errNullInvalid |
嘗試將非 Null 資料行設定為 Null 時發生不合法的嘗試。 |
JET_errRecordTooBig |
資料行值無法設定為輸入緩衝區中的值,因為它會導致記錄超過其頁面大小相關大小限制。 JET_coltypLongText或JET_coltypLongBinary類型的資料行可以與其余記錄資料分開儲存。 不過,其他資料行必須與記錄一起儲存,而且可能會導致超過記錄大小限制。 即使長資料行需要記錄內的 5 位元組空間做為連結,這也可能會導致傳回JET_errRecordTooBig。 |
JET_errRestoreInProgress |
因為與會話相關聯的實例上正在進行還原作業,所以無法完成作業。 |
JET_errSessionSharingViolation |
同一個會話不能同時用於多個執行緒。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errTermInProgress |
因為與會話相關聯的實例正在關閉,所以無法完成作業。 |
JET_errUpdateNotPrepared |
游標目前不在插入新記錄或更新現有記錄的程式中。 |
JET_wrnColumnMaxTruncated |
輸入緩衝區中的資料行值超過可變長度資料行的設定長度上限,而且已截斷。 |
成功時,針對 psetcolumns 中所述的每個資料行,資料行值的所需部分會設定為從輸入緩衝區複製的資料。 如果資料行資料集超過為可變長度資料行指定的長度上限,則資料行資料集可能會遭到截斷。
失敗時,資料指標位置會保持不變,而且複製緩衝區中不會更新任何資料行值資料。
備註
如果有任何個別的 Set 資料行作業傳回錯誤,則整個 JetSetColumns 作業會傳回錯誤。 一般而言,psetcolumns-error > 中會傳回警告,而不是在此函式的傳回碼中。 不過,如果最後一個資料行集有警告,則會從 JetSetColumns 本身傳回這個警告。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
另請參閱
JET_COLTYP
JET_ERR
JET_SESID
JET_TABLEID
JET_SETCOLUMN
JetRetrieveColumns
JetSetColumn