Функция 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

Сеанс, используемый для этого вызова.

табличный

Курсор, используемый для этого вызова.

psetcolumn

Указатель на массив одной или нескольких JET_SETCOLUMN структур. Каждая структура содержит описания значений столбцов, которые нужно задать и откуда получить данные столбца для задания.

csetcolumn

Число JET_SETCOLUMN структур в массиве, заданное psetcolumn.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделе Об ошибках обработчика хранилища и параметрахобработки ошибок.

Код возврата

Описание

JET_errBadColumnId

Идентификатор столбца, указанный вне юридических ограничений идентификатора столбца.

JET_errClientRequestToStopJetService

Невозможно завершить операцию, так как все действия в экземпляре, связанном с сеансом, прекратились в результате вызова JetStopService.

JET_errColumnIllegalNull

То же, что и JET_errNullInvalid.

JET_errColumnNotFound

Столбец, описанный заданным столбцом , не существует в таблице.

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.

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 Профессиональный.

Сервер

Требуется 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