pool ...

pool - открывает файл sym1
как файл базы данных в режиме чтения/записи. Если файл не существует, он создается. Текущая открытая база данных закрывается. lst
— это список масштабных коэффициентов размера блока (т. е. чисел), по умолчанию (2) (для одного файла с размером блока 256 байт). Если задан lst
, для каждого элемента открывается отдельный файл базы данных. Если sym2
не равен NIL
, он открывается в режиме добавления как асинхронный журнал репликации. Если sym3
не равен NIL
, он открывается для чтения и добавления, чтобы использоваться как синхронный журнал транзакций во время коммитов. Вызов (pool)
без аргументов просто закрывает текущую базу данных.
(pool ['sym1 ['lst] ['sym2] ['sym3]]) -> T
pool2 - временное переключение на другую базу данных, указанную sym
. Эта база данных должна быть многофайловой базой данных с точно такой же структурой *Dbs, как и текущая открытая. Текущая база данных не закрывается — ввод-вывод просто перенаправляется в новую. Все файлы открываются до запуска prg
и закрываются после этого. Возвращается результат prg
. Журнал репликации или журнал транзакций не записывается. Кроме того, в куче могут остаться кэшированные объекты текущей БД, поэтому может потребоваться явный вызов отката rollback.
(pool
2 'sym . prg) -> any
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sergey Shishkin
Sergey Shishkin
Всегда чему-то учусь!