НАЧАЛО >> Нативный провайдер данных DP_Irbis64Native >> Файлы базы и пути📄 Скачать в DOCX
DP_Irbis64Native должен находить файлы в тех же местах, где их ожидает ИРБИС64. Для этого провайдер читает irbis_server.ini, .par-файлы баз и параметры запроса к файловым операциям.
Пути формируются из нескольких уровней:
OPTIONS['IrbisExecPath'];MAIN/SYSPATH, MAIN/DATAPATH, MAIN/workdir, MAIN/DepositPath;.par-файл конкретной базы;Apath в файловой операции;Провайдер нормализует пути, учитывает особенности Windows и Linux и приводит имена файлов к виду, с которым работает файловая система.
ApathApath |
Назначение |
|---|---|
0 |
Системный каталог окружения. |
1 |
Каталог данных. |
2 |
Каталог MST/XRF базы. |
3 |
Каталог словаря и обратного индекса. |
10 |
Каталог меню базы или депозитарий. |
11 |
Каталог внешних документов базы. |
13 |
Прямой или абсолютный путь. |
Одна и та же файловая операция может использовать разные пути в зависимости от типа файла. Например, рабочий лист и формат могут находиться в каталоге меню, а внешние документы - в отдельном каталоге, указанном в .par.
Провайдер поддерживает стандартные операции:
GetFile - читает файл;GetFileList - возвращает список файлов;SetFile - записывает файл;SetFileMulty - записывает несколько файлов;DeleteFile - удаляет файл;LookupFile - ищет файл по правилам окружения;prvGetFilePath - вычисляет физический путь.Эти функции используются при работе с форматами, меню, рабочими листами, служебными настройками, депозитарием и административными сценариями.
Депозитарий используется для хранения файлов, которые должны перекрывать или дополнять базовые файлы окружения. DP_Irbis64Native читает настройку DepositPriority, но текущий порядок поиска файлов определяется логикой вычисления пути в провайдере.
Для Apath = 10 провайдер сначала вычисляет путь к каталогу меню базы. Если файл там не найден, используется депозитарий. Это удобно для переопределения форматов, меню и других настраиваемых ресурсов без изменения исходного комплекта базы.
.par-файл базы.par-файл задает физическое расположение основных частей базы: MST, XRF, CNT, словаря, обратного индекса, меню, внешних документов и служебных каталогов. При открытии базы провайдер разбирает .par, разрешает относительные пути относительно системного каталога и сохраняет результат в контексте базы.
Для словаря в .par задаются две пары путей: N01/L01 и N02/L02. Пара N01/L01 указывает на основной B-деревный словарь базы: N01 хранит индексные узлы, L01 - листовые блоки с терминами. Пара N02/L02 задает второе словарное пространство того же типа. В ИРБИС64/64+ оно используется для связанных индексов, в том числе для полнотекстового пространства --TEXT, и хранит такие же по структуре индексные и листовые блоки, но относится к другому набору словарных данных.
В текущей реализации DP_Irbis64Native при открытии обычной базы основной поиск работает с файлами N01/L01 и IFP. Пути N02/L02 также читаются из .par и сохраняются в контексте базы, чтобы модуль корректно знал полную файловую карту ИРБИС64. Для полнотекстового пространства провайдер строит отдельную карту путей <имя_базы>--TEXT; в ней обе пары N01/L01 и N02/L02 направляются в каталог полнотекстового индекса.
Если .par отсутствует или содержит некорректные пути, база не может быть открыта корректно.