Страница 8 из 39 Процедуры для работы с базами данных 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;
|