Функция JetOpenTable
Применимо к: Windows | Windows Server
Функция JetOpenTable
Функция JetOpenTable открывает курсор на ранее созданную таблицу.
JET_ERR JET_API JetOpenTable(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in_opt const void* pvParameters,
__in unsigned long cbParameters,
__in JET_GRBIT grbit,
__out JET_TABLEID* ptableid
);
Параметры
sesid
Используемый контекст сеанса базы данных.
dbid
Идентификатор базы данных, используемый для поиска таблицы.
szTableName
Имя открываемой таблицы.
pvParameters
Не рекомендуется. Задайте значение NULL.
cbParameters
Не рекомендуется. Задайте значение 0 (ноль).
grbit
Группа битов, задающая ноль или несколько следующих параметров.
Значение |
Значение |
---|---|
JET_bitTableDenyRead |
Таблица не может быть открыта для чтения другим сеансом базы данных. |
JET_bitTableDenyWrite |
Таблица не может быть открыта для доступа на запись другим сеансом базы данных. |
JET_bitTableNoCache |
Не кэшируйте страницы для этой таблицы. |
JET_bitTablePermitDDL |
Разрешает изменение DDL в таблицах, помеченных как FixedDDL. Этот параметр необходимо использовать с параметром JET_bitTableDenyRead. |
JET_bitTablePreread |
Предоставляет указание на то, что таблица, вероятно, не находится в буферном кэше и что предварительное чтение может оказаться полезным для производительности. |
JET_bitTableReadOnly |
Запрашивает доступ к таблице только для чтения. |
JET_bitTableSequential |
Таблица должна быть очень агрессивно получена с диска, так как приложение будет проверять ее последовательно. |
JET_bitTableUpdatable |
Запрашивает доступ на запись к таблице. |
ptableid
При успешном выполнении указывает на идентификатор таблицы. При сбое содержимое ptableid не определено.
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errInvalidDatabaseId |
dbid не является допустимым идентификатором базы данных. |
JET_errInvalidgrbit |
Была передана плохая комбинация grbit . |
JET_errInvalidName |
Недопустимое имя, заданное в szTableName . Дополнительные сведения о допустимых именах таблиц см. в разделе Параметр szTableName в JetCreateTable. |
JET_errObjectNotFound |
Предпринята попытка открыть таблицу, которая не существует в базе данных. |
JET_errOutOfCursors |
Операция завершилась сбоем, так как подсистеме не удается выделить ресурсы, необходимые для открытия нового курсора. См. раздел «Примечания». |
JET_errTableInUse |
Таблица используется другой операцией базы данных. |
JET_wrnTableInUseBySystem |
Некритичное предупреждение, указывающее, что таблица используется системой. |
JET_errTableLocked |
Таблица заблокирована другой операцией базы данных. |
JET_errTooManyOpenTables |
Предпринята попытка одновременного открытия слишком большого количества уникальных таблиц. См. раздел «Примечания». |
Комментарии
Таблицы, открытые с помощью JetOpenTable , обычно следует закрывать с помощью JetCloseTable. Исключение из этого правила возникает, когда в транзакции вызывается JetOpenTable и выполняется откат транзакции (с помощью JetRollback). При откате транзакции таблица автоматически закрывается. В этом случае при закрытии таблицы с помощью JetCloseTable возникает ошибка.
Можно открывать системные таблицы с помощью JetOpenTable (например, MSysObjects, MSysUnicodeFixup). Схема системных таблиц может измениться, поэтому доступ к системным таблицам не рекомендуется. Количество уникальных таблиц, которые можно открыть одновременно, напрямую зависит от JET_paramMaxOpenTables. Если таблица в данный момент открыта, в ней будет создан новый курсор. Ресурсы курсора настраиваются с помощью JetSetSystemParameter с JET_paramMaxCursors. Также см . Раздел JetDupCursor.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetOpenTableW (Юникод) и JetOpenTableA (ANSI). |
См. также:
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
Параметры ресурсов