Энциклопедия Turbo Pascal. Главы 9-11 - Процедуры для работы с базами данных
ОГЛАВЛЕНИЕ
Процедуры для работы с базами данных
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;