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

给定的列 ID 超出了列 ID 的法律限制。

JET_errClientRequestToStopJetService

无法完成该作,因为由于调用 JetStopService 而停止了与会话关联的实例上的所有活动。

JET_errColumnIllegalNull

与JET_errNullInvalid相同。

JET_errColumnNotFound

表中不存在由给定 columnid 描述的列。

JET_errColumnNotUpdatable

在插入复制删除原始更新作期间,非法尝试更新长值。

JET_errColumnTooBig

输入缓冲区中给定的给定列值数据超出了固定长度列或为固定长度文本或二进制列配置的固定长度列的自然大小限制。 在为长列传递超过 1024 字节的数据并设置JET_bitSetIntrinsicLV标志时,也会返回此错误。

JET_err实例不可用

无法完成该作,因为与会话关联的实例遇到了一个致命错误,要求撤销对所有数据的访问以保护该数据的完整性。 此错误仅由 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_coltypLongTextJET_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