logo
TurboProlog / Документация / TOM_2

Db_close/1 Внешняя База Данных

Назначение Закрывает открытую базу данных

Обращение db_close(БДанн)

Домены (db_selector)

Шаблоны описания (вх)

аргументов

Описание Вызов db_close закрывает открытую базу данных. Если

база данных размещена в файле, то файл будет закрыт.

Если база данных размещена в оперативной памяти или в

системе расширения памяти, то база данных не будет

уничтожена и может быть вновь открыта позднее

обращением к db_open. Для удаления закрытой базы

данных из памяти или с диска используется предикат

db_delete.

Неудачное Никогда не дает.

завершение

Ошибки 1030 Ошибка ввода/вывода диска.

1031 Переполнение Системы Расширения Памяти.

1034 База данных не открыта.

Пример

domains

db_selector = mydba

goal

db_open(mydba,"register.bin",in_file),

% ....... Здесь обработка базы данных..

db_close(mydba),

db_copy/3

Назначение Копирует открытую базу данных

Обращение db_copy(БДанн,НовБД,Место)

Домены (db_selector,string,place)

Шаблоны описания (вх,вх,вх)

аргументов

Описание db_copy делает копию открытой базы данных,

определяемой БДанн. Она должна быть в файле, в

оперативной памяти или в системе расширения памяти.

Новая база данных НовБД будет размещена

соответственно аргументу Место. (См. db_create.)

Копирование производится запись к записи так, что

новая база данных не содержит свободного

пространства.

db_copy может быть использована в следующих целях:

# Считывание двоичной базы данных с диска в

оперативную память и последующей записью опять на

диск вместо использования текстовых файлов и

предикатов save и consult.

# Копирование средних размеров баз данных с диска в

систему расширения памяти для обеспечения быстрого

доступа при выполнении программы.

# Уплотнение баз данных, содержащих слишком много

свободного пространства.

Неудачное Никогда не дает.

завершение

Ошибки 1033 Недопустимое имя файла базы данных.

1034 База данных не открыта.

1038 В указанном месте не существует базы данных

с таким именем.

1044 Невозможно создать указанную базу данных.

1046 Не установлена система расширения памяти.

Пример

domains

db_selector = mydba

goal

db_open(mydba,"register.bin",in_file),

db_copy(mydba,"register",in_memory),

db_close(mydba),

db_open(mydba,"register",in_memory),

% Продолжение с БД в оперативной памяти

db_copy(mydba,"dd.bin",in_file),

db_close(mydba),

db_delete("register",in_memory).