Функция JetRenameColumn
Применимо к: Windows | Windows Server
Функция JetRenameColumn
Функцию JetRenameColumn можно использовать для изменения имени существующего столбца в таблице.
Windows XP:JetRenameColumn появился в Windows XP.
JET_ERR JET_API JetRenameColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szName,
__in JET_PCSTR szNameNew,
__in JET_GRBIT grbit
);
Параметры
sesid
Сеанс, используемый для этого вызова.
tableid
Курсор, используемый для этого вызова.
szName
Текущее имя столбца, который будет переименован.
szNameNew
Новое имя столбца, который будет переименован.
grbit
Этот параметр должен иметь значение 0.
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errClientRequestToStopJetService |
Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService. |
JET_errColumnNotFound |
Этот указанный столбец не существует для этой таблицы. |
JET_errInvalidName |
Одно из указанных имен объектов было недопустимым. Все имена объектов должны соответствовать одному и тому же набору правил. Ниже приведены эти правила.
|
JET_errInvalidParameter |
Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра. Это может произойти для JetRenameColumn , если:
|
JET_errInstanceUnavailable |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
JET_errInTransaction |
Эта операция может выполняться только в том случае, если сеанс в данный момент не находится внутри транзакции. |
JET_errNotInitialized |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован. |
JET_errRestoreInProgress |
Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом. |
JET_errSessionSharingViolation |
Один и тот же сеанс нельзя использовать для нескольких потоков одновременно. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
JET_errTermInProgress |
Невозможно завершить операцию, так как экземпляр, связанный с сеансом, завершает работу. |
JET_errTransReadOnly |
Обновление невозможно выполнить в область транзакции, доступной только для чтения. Транзакция только для чтения — это транзакция, запущенная с помощью вызова JetBeginTransaction2 с JET_bitTransactionReadOnly. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
При успешном выполнении имя указанного столбца в таблице, связанной с курсором, постоянно меняется на новое имя. Все индексы, ссылающиеся на этот столбец, также будут обновлены.
При сбое изменение состояния базы данных не произойдет.
Комментарии
Операция переименования столбцов является необычной, так как, в отличие от других операций схемы, она не выполняется как транзакция. При переименовании столбца в заданной таблице в одном сеансе любой другой сеанс, использующий таблицу, сразу же увидит изменение, даже если они находятся в транзакции, которая не позволит этому сеансу увидеть любые другие изменения, внесенные сеансом, выполняющим операцию переименования.
Операция переименования не влияет на идентификатор столбца.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista или Windows XP. |
Сервер |
Требуется Windows Server 2008 или Windows Server 2003. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetRenameColumnW (Юникод) и JetRenameColumnA (ANSI). |
См. также:
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetBeginTransaction2