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