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

Число 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, значение 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