Функция JetSetDatabaseSize
Применимо к: Windows | Windows Server
Функция JetSetDatabaseSize
Функция JetSetDatabaseSize задает размер неоткрытого файла базы данных.
JET_ERR JET_API JetSetDatabaseSize(
__in JET_SESID sesid,
__in JET_PCSTR szDatabaseName,
__in unsigned long cpg,
__out unsigned long* pcpgReal
);
Параметры
sesid
Определяет контекст сеанса базы данных, используемый для вызова API.
szDatabaseName
Определяет имя файла базы данных, размер которого требуется изменить.
Cpg
Указывает требуемый размер базы данных в страницах.
pcpgReal
Указатель на число, которое получает размер базы данных на страницах после вызова API. Если вызов API был неудачным, содержимое pcpgReal не определено.
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errDatabaseInconsistent |
JET_errDatabaseInconsistent и JET_errDatabaseDirtyShutdown являются одинаковыми числовыми значениями. База данных, размер которой требуется изменить, должна находиться в состоянии чистого завершения работы, известного как согласованное состояние. Несогласованная база данных не повреждена, но требует воспроизведения файлов журналов. |
JET_errDatabaseInvalidPath |
szDatabaseName не должно быть пустой строкой, отличной от NULL. |
JET_errDiskFull |
Недостаточно свободного места на томе для выполнения операции увеличения. JetSetDatabaseSize также может возвращать множество ошибок, связанных с файлами, в том числе:
|
JET_errInvalidParameter |
Одна из причин, по которой эта ошибка может быть возвращена, заключается в том, что cpg соответствует минимальному размеру базы данных. Текущий минимальный размер базы данных составляет 256 страниц. |
JET_errOutOfMemory |
В системе недостаточно ресурсов памяти. |
Комментарии
Если перед вставкой больших объемов данных вызывается JetSetDatabaseSize , файл базы данных будет увеличен за одну операцию. Это снизит вероятность фрагмента файла базы данных на уровне файловой системы, а также уменьшит количество раз, когда файл базы данных должен быть увеличен. Однократное увеличение файла базы данных может выполняться быстрее, чем несколько раз.
В настоящее время поддерживается только расширение файла. Чтобы сжать файл, используйте функцию дефрагментации служебной программы esentutl.exe.
Если cpg меньше текущего размера базы данных, операция будет игнорироваться. Если cpg меньше минимального размера базы данных (в настоящее время 256 страниц), он вернет JET_errInvalidParameter.
Сведения о том, как задать размер открываемой базы данных, см. в статье JetGrowDatabase.
Размер файла может не соответствовать количеству страниц, возвращаемых в pcpgReal. Есть две дополнительные зарезервированные страницы, которые могут не учитываться в pcpgReal.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetSetDatabaseSizeW (Юникод) и JetSetDatabaseSizeA (ANSI). |
См. также:
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetGrowDatabase