Энциклопедия Turbo Pascal. Главы 9-11
Страница 8. Процедуры для работы с базами данных


 

Процедуры для работы с базами данных

AddRec

      procedure AddRec(var dfile: DataFile, var RecNum,
                       var buffer);

     Процедура AddRec добавляет записи,  содержащиеся в buffer, к
файлу данных dfile и возвращает номер записи,  в которой осущест-
влено запоминание,  в RecNum переменная buffer не имеет типа,  но
она  должна содержать правильную запись.  При успешном выполнении
ОК содержит TRUE; в противном случае она равна FALSE. RecNum час-
то используется в последующем вызове AddKey.

ClearKey

     Процедура ClearKey используется для сброса указателя индекса
индексного файла в начало файла.  Она объявляется следующим обра-
зом:

    procedure ClearKey(var ifile: IndexFile);

                CloseFile и CloseIndex

     Данные процедуры  используются  для  закрытия файла данных и
индексного файла, соответственно. Они объявляются следующим обра-
зом:
     procedure CloseFile(var dfile: DataFile);
     procedure CloseIndex(var ifile: IndexFile);
Вы должны  закрыть  все  файлы,  которые были открыты процедурами
Turbo Access. Если этого не делать, то могут быть потеряны данные
или разрушен индексный файл.

DeleteKey

     Данная процедура удаляет ключ из индексного файла.  Она объ-
является следующим образом:
    procedure DeleteKey(var   ifile:   Indexfile,   var  RecNum:
                        integer, var key);
Если в файле допускаются дублированные ключи,  то  RecNum  должна
содержать номер записи данных, связанной с ключем, который должен
быть удален. Если операция завершилась успешно, то ОК равно TRUE,
в противном случае - FALSE.

DeleteRec

     Процедура DeleteRec  удаляет  указанную запись из файла дан-
ных. Она объявляется следующим образом:
    procedure DeleteRec(var dfile.  DataFile,var RecNum:integer);
Данная  процедура  осуществляет удаление записи с номером RecNum.
Если операция выполняется успешно,  ОК равно  TRUE,  в  противном
случае - FALSE. Уничтожаемая запись удаляется из файла логически,
но она остается в файле физически и помещается в связанный список
уничтоженных  записей  для возможного последующего использования.
Важно,  чтобы вы никогда не пытались уничтожить уже  уничтоженную
запись.  Делая так, можно разрушить связанный список уничтоженных
записей.

FileLen

     Функция FileLen возвращает число записей в файле данных.
     Она объявляется следующим образом:
     function FileLen(var dfile: DataFile): integer;
Помните, что все файлы Turbo Access используют первую запись для
внутренних целей так,  что число записей, действительно содержа-
щих ваши данные, меньше на 1 возвращаемого данной функцией.

FindKey

     Данная процедура определяет местоположение заданного ключа в
индексном файле и возвращает соответствующий номер  записи  файла
данных. Она объявляется следующим образом:
     procedure FindKey(var ifile: IndexFile,var RecNum:integer,
                       var key);
Если key является ключем в заданном файле, то RecNum устанавлива-
ется на запись,  связанную с ключем в файле данных. Если операция
выполнилась успешно,  то ОК устанавливается в  значение  TRUE,  в
противном случае - в FALSE.

GetRec

     Процедура GetRee осуществляет считывание записи информации с
заданным номером из файла данных. Она объявляется следующим обра-
зом:
     procedure GetRec(var dfile: DataFile, var RecNum: integer,
                      var buffer);
Запись с  номером RecNum считывается в buffer,  который должен по
размеру соответствовать записи.

InitIndex

     Данная процедура  использует для инициализации таблицы,  ис-
пользуемой Turbo Access для установки индексных  файлов.  Она  не
имеет  параметров.  Данная  процедура должна вызываться однажды в
начале вашей программы до вызова других процедур Turbo Access.

MakeFile MakeIndex

     Данные процедуры  используются  для создания файлов данных и
индексных файлов Turbo Access. Они объявляются следующим образом:
     procedure MakeFile(var dfile: DataFile, fname: string[14]
                        RecLen: integer);
     procedure MakeIndex(var    ifile:    IndexFile,    fname:
                         string[14], KeyLen,DupKeys: integer);
Параметр RecLen  в  MakeFile должен содержать значение длины дан-
ных,  которые будут запоминаться. Лучший способ сделать это - ис-
пользование  SizeOf  вместо  подсчета  байт.  Параметр  KeyLen  в
MakeIndex должен содержать значение длины ключа.  Если DopKey ус-
тановлен в 0,  то дублирование ключей не допускается, а если в 1,
то допускается.  Успешное выполнение операции устанавливает ОК  в
TRUE, в противном случае - в FALSE.

NextKey

     Данная процедура  возвращает  соответствующий  номер  записи
файла  данных,  связанный  со следующим ключем в индексном файле.
Она объявляется следующим образом:

     procedure NextKey(var   ifile:   IndexFile,  var  RecNum:
                       integer, var key);

     После обращения к процедуре RecNum будет содержать номер за-
писи в файле данных, соответствующей следующему ключу в индексном
файле.  Переменной key будет присвоено значение следующего ключа.
При успешном обращении к NextKey ОК  устанавливается  в  TRUE,  в
противном случае - в FALSE.

OpenFile и OpenIndex

     Данные процедуры используются для открытия существующих фай-
ла  данных  и индексного файла,  соответственно.  Они объявляются
следующим образом:
     procedure OpenFile(var dfile: DataFile, fname: string[14],
                        RecLen: integer);
     procedure OpenIndex(var ifile:IndexFile,fname: string[14],
                         KeyLen, DupKeys: integer);
Параметр RecLen в OpenFile должен быть установлен в значение дли-
ны данных,  которые будут запоминаться. Лучший способ сделать это
состоит в том, чтобы применить SizeOf вместо подсчета байт. Пара-
метр RecLen в OpenIndex должен быть установлен в  значение  длины
ключа.  Если параметр DupKey установлен в 0,  дублирование ключей
не допускается, а если 1, то разрешается. При успешном выполнении
данных процедур ОК устанавливается в TRUE, в противном случае - в
FALSE.

PrevKey

     Данная процедура  используется  для возврата номера записи в
файле данных,  связанной с предыдущим ключем в  индексном  файле.
Она объявляется следующим образом:

     procedure PrevKey(var  ifile:  IndexFile,   var   RecNum:
                       integer, var key);

После обращения к процедуре параметр RecNum будет содержать номер
записи  в  файле данных,  соответствующей предыдущему ключу в ин-
дексном файле. Переменной key будет присвоено значение предыдуще-
го ключа.  При успешном выполнении данной процедуры ОК устанавли-
вается в TRUE, в противном случае - в FALSE.

PutRec

     Данная процедура помещает запись информации с заданным номе-
ром в файл данных. Она объявляется следующим образом:
     procedure PutRec(var dfile: DataFile, var RecNum:integer,
                      var buffer);
Информация из buffer помещается в запись с номером RecNum.  Пере-
менная buffer должна иметь размер соответствующий длине записи.

SearchKey

     Данная процедура  используется  для поиска в индексном файле
первого ключа, который не меньше ключа, заданного в вызове проце-
дуры. Она объявляется следующим образом:
     procedurte SearchKey(var ifile: IndexFile, var RecNum:
                          integer, var key);
При успешном выполнении процедура возвращает номер записи в файле
данных,  связанной с ключем в RecNum и устанавливает ОК в TRUE. В
противном случае ОК устанавливается в FALSE.

UsedRec

     Данная процедура  возвращает  число  записей в файле данных,
содержащих истинные данные.  Уничтоженные записи не подсчитывают-
ся. Процедура объявляется следующим образом:
     function UsedRecs(var dfile: DataFile): integer;

 
Следующая статья »