Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Db_create/3

Этот предикат создает новую базу данных.

db_create(Dbase, Name, Place) /* (i,i,i) */

Если база данных создается на диске, то Name указывает имя файла,

если она создается в оперативной памяти, то Name используется в качестве

параметра db_close и db_open. Dbase и Name обозначают соответственно

внутренее и внешнее наименование базы данных. Место расположения базы

данных указывается переменной Place.

Place может принимать одно из трех значений:

in_file - для экономии оперативной памяти база данных

помещается на диске;

in_memory - для достижения высокой скорости доступа базы данных

помещается в оперативной памяти;

in_ems - если установлена карта расширения памяти, то база

данных помещается в расширенной памяти.

Значения in_file, in_memory, in_ems являются элементами предопреде-

ленного домена Place, который соответствует следующему объявлению:

place = in_file; in_memory; in_ems

Приведем два примера обращения к db_create:

db_create(db_sel1,"MYFILE.DBA",in_file)

db_create(db_sel1,"Symflame",in_memory)

Db_open/3

Этот предикат открывает предварительно определенную базу данных, ин-

дентифицированную именами Name и Place.

db_open(Dbase, Name, Place) /* (i,i,i) */

Если Place принимает значение in_memory или in_ems, то Name соответ-

ствует символическому имени файла, а если Place принимает значение

in_file, то Name соответствует имени файла, принятому в DOS.

Db_copy/3

Независимо от того, где помещена база данных, ее можно переместить в

другое место расположения, используя предикат db_copy.

db_copy(Dbase, Name, Place) /* (i,i,i) */

Например, при обработке предиката:

db_copy(my_base, "ntw_EMSbase", in_ems)

Турбо Пролог копирует базу данных, связанную с селектором my_base, в но-

вый файл базы данных new_EMSbase, который размещается в расширенной памя-

ти.

При копировании сохраняется исходная база данных, и вы будете иметь

две идентичные базы данных до тех пор, пока явным способом не удалите од-

ну из них.

После перемещения базы обработка ее может проводится как если бы ни-

чего не произошло, так как все указатели во внешней базе данных остаются

правильными. То есть, если вы работаете с базой данных в оперативной па-

мяти, и освобождение памяти не занимает большого времени, вы можете ско-

пировать базу данных в файл и продолжать обработку там. Указатель, уста-

новленный для базы данных в оперативной памяти, остается верным после ко-

пирования базы данных в файл.

db_copy используется в нескольких случаях, например:

- для загрузки базы данных в оперативную память и для сохранения

ее в файле после обработки, вместо использования предиката save

и cousuit;

- для копирования баз данных среднего объема с диска в EMS-па-

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

- для сжатия базы данных, содержащей слишком много свободных

мест, т.к. при копировании базы данных пустые места устраняются.

Соседние файлы в папке Документация