Импорт записей из папки CDS/ISIS


НАЧАЛО >> Руководство пользователя >> Импорт записей из папки 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, а после загрузки выполняется актуализация словаря. Функция импорта сама не очищает целевую БД и не запускает актуализацию словаря; эти действия нужно явно выполнить в вызывающем коде, если они требуются для сценария переноса.

1. Входные данные

Папка CDS/ISIS должна быть доступна серверному PHP-процессу и содержать обязательные файлы данных:

Файл Назначение
.mst master-файл с записями CDS/ISIS.
.xrf cross-reference-файл с адресами записей в master-файле.

Имена файлов могут быть произвольными, проверяется расширение. Регистр расширения не важен. Если папка не найдена, отсутствует .mst или .xrf, файл не открывается или структура записи не совпадает с ожидаемой, функция возвращает код ошибки.

Текстовые значения записей преобразуются из cp866 в utf-8. Подполя CDS/ISIS передаются в запись ИРБИС 128 с разделителем ^.

2. Параметры

$db->ImportFromCdsIsisFolder(string $path, string $fst = '');
Параметр Описание
$path Путь к папке CDS/ISIS с файлами .mst и .xrf.
$fst Имя FST-преобразования для последующего импорта через ImportFromFile(). Если параметр пустой, записи передаются без явного FST.

Функция сначала читает записи из CDS/ISIS и сохраняет их во временный текстовый файл в формате IRBIS text. Имя файла строится из имени целевой БД и текущего времени в каталоге данных системы. После этого временный файл передается в ImportFromFile().

3. Результат

При успешном чтении функция возвращает количество записей, считанных из CDS/ISIS. Возвращаемое значение не включает управляющую запись CDS/ISIS.

При ошибке возвращается код исключения чтения:

Код Ситуация
-400 Не найдена папка, не найден обязательный файл, файл не открылся или данные повреждены.
-608 Встречена логически удаленная запись.

Если нужно полностью заменить содержимое целевой БД, перед импортом вызовите Empty(). Если после импорта требуется поиск по новым записям, после загрузки вызовите RecIfUpdateComplete() или другой подходящий сценарий актуализации словаря.

4. Связанные разделы