IRBIS64.dll

Материал из Wikipedia
Перейти к: навигация, поиск
// базовая функция чтения записи без блокировки (аналог RECORD)
function IrbisRecord(PS: PIrbisSpace; Shelf,mfn: longint): integer; export;

Функции работы с инверсным файлом

Поисковый ключ term должен иметь длину >=255 используйте тип TKey.

// Найти термин term.
// Возвращает:
// 0 - термин найден
// TERM_NOT_EXISTS = -202 в term - следующий термин
// TERM_LAST_IN_LIST = -203  в term - #0
// TERM_FIRST_IN_LIST = -204  в term - первый термин словаря
function Irbisfind(PS: PIrbisSpace; term: Pchar): integer; export;
// дать следующий термин
// возврат 0 и term TERM_LAST_IN_LIST и #0
function Irbisnxtterm(PS: PIrbisSpace; term: Pchar): integer; export;
// дать предидущий термин
// возврат 0 и term TERM_FIRST_IN_LIST и #0
function Irbisprevterm(PS: PIrbisSpace; term: Pchar): integer; export;
// Возвращает число ссылок на термин.
// Функция предназначена для использования после вызова Irbisfind.
function Irbisnposts(PS: PIrbisSpace): longint; export;
// разбор ссылки mfn,tag,occ,cnt
function Irbisposting(PS: PIrbisSpace; opt: smallint): longint; export;
// инициализация работы со ссылками - не вызывается напрямую процедура скрыта в FIND
function Irbisinitpost(PS: PIrbisSpace): integer; export;
// дать след ссылку возврат 0 -1(конец списка)
function Irbisnxtpost(PS: PIrbisSpace): integer; export;
// установить указатель постингов на заданном чтобы читать дальше NXTPost с него!!!
function IrbisFindPosting(PS: PIrbisSpace; const Term: PChar; const posting: TifpItemPosting): integer; export;

Функции работы с полями прочитанной записи БЕЗ ФИЗИЧЕСКОЙ ЗАПИСИ

// возврат: порядковый номер заданного поля в справочнике или 0, если поле отсутствует аналог (ISIS FIELDN)
function Irbisfieldn(PS: PIrbisSpace; shelf,met,occ: integer): integer;export;
// получить элемент данных записи: полученной по ISISRLOCK или ISISRECORD (аналог FIELD)
function Irbisfield(PS: PIrbisSpace; shelf,nf: integer; subfields: PChar): Pchar;export;
// nf - порядковый номер поля в справочнике
// если nf<1 или nf>кол-ва полей, то поле добавляется последним
// возврат: 0 - успешное завершение <>0 - не успешное
// АНАЛОГ ISIS FLDADD
function Irbisfldadd(PS: PIrbisSpace; Shelf,met, nf: integer; pole: Pchar): integer;export;
// замена поля
// возврат: 0 - успешно; <>0 - неуспешно
// если pole=nil () - удаляет!!
// аналог FLDREP
function Irbisfldrep(PS: PIrbisSpace; Shelf,nf: integer; pole: Pchar): integer;export;
// аналог NFIELDS
function Irbisnfields(PS: PIrbisSpace;Shelf:integer): integer;export;
// вернуть число повторений поля с даной меткой
// аналог NOCC
function Irbisnocc(PS: PIrbisSpace; Shelf,met: integer): integer;export;
// вернуть метку поля по порядковому номеру поля в записи
// аналог FLDTAG
function Irbisfldtag(PS: PIrbisSpace; Shelf,nf: integer): integer; export;
// опустошает запись
function Irbisfldempty(PS:PIrbisSpace;Shelf:integer):integer;export;


// формирование заготовки для новой записи с номером Amfn
function Irbisnewrec(PS: PIrbisSpace; shelf: integer): integer; export;
// изменитьномер записи
function Irbischangemfn(PS: PIrbisSpace; shelf,newmfn: integer):integer;export;


// номер документа в базе
function Irbismfn(PS: PIrbisSpace;shelf:integer): longint;export;
// номер следующей НОВОЙ запис в базе = (максим - 1)
function Irbismaxmfn(PS: PIrbisSpace): longint;export;

Функции, осуществляющие запись в БД

// опустошение БД
function IrbisDBEmptyTime(IrbisSpace:PIrbisSpace;seconds:integer):integer;export;
// заблокировать БД
function IrbisLockDBTime(IrbisSpace:PIrbisSpace;seconds:integer):integer;export;
// снять блокировку БД
function IrbisUnLockDBTime(IrbisSpace:PIrbisSpace;seconds:integer):integer;export;
// базовая функция записи с полки с актуализацией и разблокировкой
function IrbisRecUpdateTime(IrbisSpace:PIrbisSpace;Shelf:integer;KeepLock:integer;Updif:boolean;seconds:integer;
  var result_update:integer;var result_updif:integer):integer;export;
// базовая функция актуализации записи
function IrbisRecIfUpdateTime(IrbisSpace:PIrbisSpace;Shelf, mfn:integer;seconds:integer):integer;export;
// базовая функция блокировки записи
// аналог RECORD
function IrbisRecLockTime(IrbisSpace: PIrbisSpace; Shelf,mfn: longint;seconds:integer): integer;export;
// базовая функция разблокировки записи
function IrbisRecUnLockTime(IrbisSpace:PIrbisSpace;mfn:integer;seconds:integer):integer;export;