НАЧАЛО >> Руководство пользователя >> Импорт записей из папки CDS/ISIS📄 Скачать в DOCX
Database::ImportFromCdsIsisFolder() импортирует записи из файловой базы CDS/ISIS в базу данных ИРБИС 128. Функция вызывается у объекта целевой БД, полученного через UseModule('i128f')->GetDb().
$db = UseModule('i128f')->GetDb('RKP1924');
$db->Empty();
$db->ImportFromCdsIsisFolder("C:\\ISIS\\DATA\\1924", 'umarciw');
$db->RecIfUpdateComplete();
В примере целевая БД RKP1924 предварительно очищается, затем в нее импортируются записи из папки C:\ISIS\DATA\1924, а после загрузки выполняется актуализация словаря. Функция импорта сама не очищает целевую БД и не запускает актуализацию словаря; эти действия нужно явно выполнить в вызывающем коде, если они требуются для сценария переноса.
Папка CDS/ISIS должна быть доступна серверному PHP-процессу и содержать обязательные файлы данных:
| Файл | Назначение |
|---|---|
.mst |
master-файл с записями CDS/ISIS. |
.xrf |
cross-reference-файл с адресами записей в master-файле. |
Имена файлов могут быть произвольными, проверяется расширение. Регистр расширения не важен. Если папка не найдена, отсутствует .mst или .xrf, файл не открывается или структура записи не совпадает с ожидаемой, функция возвращает код ошибки.
Текстовые значения записей преобразуются из cp866 в utf-8. Подполя CDS/ISIS передаются в запись ИРБИС 128 с разделителем ^.
$db->ImportFromCdsIsisFolder(string $path, string $fst = '');
| Параметр | Описание |
|---|---|
$path |
Путь к папке CDS/ISIS с файлами .mst и .xrf. |
$fst |
Имя FST-преобразования для последующего импорта через ImportFromFile(). Если параметр пустой, записи передаются без явного FST. |
Функция сначала читает записи из CDS/ISIS и сохраняет их во временный текстовый файл в формате IRBIS text. Имя файла строится из имени целевой БД и текущего времени в каталоге данных системы. После этого временный файл передается в ImportFromFile().
При успешном чтении функция возвращает количество записей, считанных из CDS/ISIS. Возвращаемое значение не включает управляющую запись CDS/ISIS.
При ошибке возвращается код исключения чтения:
| Код | Ситуация |
|---|---|
-400 |
Не найдена папка, не найден обязательный файл, файл не открылся или данные повреждены. |
-608 |
Встречена логически удаленная запись. |
Если нужно полностью заменить содержимое целевой БД, перед импортом вызовите Empty(). Если после импорта требуется поиск по новым записям, после загрузки вызовите RecIfUpdateComplete() или другой подходящий сценарий актуализации словаря.