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

Key_current/4 Внешняя База Данных

Назначение Возвращает текущий ключ поле и номер ссылки для B+

дерева

Обращение key_current(Бданных,указатель Бд,Ключ,Ссылка)

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

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

аргументов

Описание key_current возвращает ключ и номер ссылки базы

данных для текущего внутреннего указателя B+ дерева.

key_current несогласовывается если предварительно не

было обращениея к bt_open, bt_create, key_insert или

key_delete. Он также несогласовывается, когда

указатель установлен перед первым ключом (используя

key_prev) или после последнего (используя key_next).

Неудачное Если указатель 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).