Иллюстрированный самоучитель по Delphi 7 для профессионалов

Интерфейс прикладного программирования ВDЕ

procedure TMainForm.PriorBtnClick(Sender: TObject);
begin
try
if DbiGetPriorRecord(hCur, dbiNoLock, RecBuf, Nil) = DBIERR_BOF
then PriorBtn.Enabled: = False
else
begin
if Not NextBtn.Enabled then NextBtn.Enabled: = True;
DbiGetField{hCur, 1, RecBuf, SFValue, IsEmpty);
MainForm.CountryEdit.Text: = FValue;
DbiGetField(hCur, 2, RecBuf, @FValue, IsEmpty);
MainForm.CapitalEdit.Text: = FValue;
end;
except
OnBDEError;
end;
end;
procedure TMainForm.NextBtnClick(Sender: TObject);
begin
try
if DbiGetNextRecord(hCur, dbiNoLock, RecBuf, Nil)=DBIERR_EOF
then NextBtn.Enabled: = False
else
begin
if Not PriorBtn.Enabled then PriorBtn.Enabled: = True;
DbiGetFieldfhCur, 1, RecBuf, @FValue, IsEmpty);
MainForm.CountryEdit.Text: = FValue;
DbiGetField(hCur, 2, RecBuf, @FValue, IsEmpty);
MainForm.CapitalEdit.Text: = FValue;
end;
except
OnBDEError;
end;
end;
end.

Иллюстрированный самоучитель по Delphi 7 для профессионалов › Процессор баз данных Borland Database Engine › Интерфейс прикладного программирования ВDЕ
Рис. 16.5. Главная форма проекта DirectBDE

При показе главной формы приложения в процедуре Formshow проводится инициализация BDE, открытие базы данных и таблицы. При этом создаются дескрипторы базы данных hDB и курсора таблицы hour, которые играют в дальнейшей работе приложения важную роль. Если при создании базы данных не указывать псевдоним БД, то обязательно нужно определить рабочий каталог базы данных с помощью функции DbiSetoirectory.

После этого отводится память под буфер записи, в который будут передаваться значения полей текущей строки таблицы. Размер буфера определяется при помощи Структуры CURPropS.

Затем курсор устанавливается на начало набора данных и на первую запись и осуществляется чтение значений двух полей таблицы.

Навигация по набору данных реализована в методах-обработчиках на нажатие кнопок формы. Их действие аналогично за исключением направления перемещения. При щелчке на кнопке выполняется переход на следующую или предыдущую запись, данные из новой записи помещаются в буфер записи RecBuf. Оттуда при помощи функции DMGetFieid осуществляется чтение значений полей. При достижении начала или конца набора данных кнопка деактивируется.

При закрытии формы проводятся операции по освобождению памяти буфера записи, закрытию базы данных и BDE.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.