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

Key_next/3 Внешняя База Данных

Назначение Перемещает указаталь к следующему ключу в B+ дереве

Обращение key_next(Бданных,указатель Бд,СледСсылка).

Домены (db_selector,bt_selector,ref).

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

аргументов

Описание key_next перемещает внутренний указатель B+ дерева

к следующему ключу в B+ дереве и возвращает номер

ссылки базы данных, записанный под этим ключом. Если

указатель B+ дерева будет расположен на последнем

ключе, то key_next не согласуется, и последующее

обращение к key_current будет также несогласовано.

Неудачное Если не имеется больше ключей в B+ дереве.

завершение

Ошибки 1034 База Данных не открыта.

1052 Неправильный переключатель B+ дерева для данной

базы данных.

Пример

domains

Db_selector = mydba

predicates

% Список ключей в индексе

list_keys(db_selector, Bt_selector)

clauses

list_keys(Db_selector, Bt_selector):-

key_current(Db_selector, Bt_selector, Key, _),

write(Key, '\n'),

fail.

list_keys(Db_selector, Bt_selector) :-

key_next(Db_selector, Bt_selector, _), !,

list_keys(Db_selector, Bt_selector).

list_keys(_, _).

goal

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

bt_open(mydba,"person_name",Bt_selector),

key_first(mydba,Bt_selector,_),

list_keys(mydba,Bt_selector).