適用於: 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 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
回傳碼 |
說明 |
|---|---|
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 中所述的每個數據行,數據行值的所需部分會設定為從輸入緩衝區複製的數據。 如果數據行數據集超過為可變長度數據行指定的長度上限,可能已經截斷。
失敗時,數據指標位置會保持不變,而且複製緩衝區中不會更新任何數據行值數據。
備註
如果任何個別的集合數據行作業傳回錯誤,則整個 JetSetColumns 作業會傳回錯誤。 一般而言,警告會在 psetcolumns-error 中傳回,>而不是在此函式的傳回碼中傳回。 不過,如果最後一個數據行集有警告,則會從 JetSetColumns 本身傳回此警告。
需求
| 要求 | 價值觀 |
|---|---|
客戶 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
伺服器 |
需要 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