i Ли ст и hi Hi.'?. Модуль i лавной фор мы и риложония DiroctlSDI :i !Щ ■■ J'" -J
unit Unitl;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, BDE, ExtCtrls;
type
TMainForm = class(TForm)
PriorBtn: TBitBtn;
Panel2: TPanel;
NextBtn: TBitBtn;
Label3 : TLabel;
CountryEdit: TEdit;
Labell: TLabel;
CapitalEdit: TEdit;
procedure PriorBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction) ;
procedure NextBtnClick(Sender: TObject);
private
hDB: hDBIDB;
hCur: hDBICur;
CursProps: CurProps;
RecBuf: pByte;
FValue: array[0..255] of Char;
IsEmpty: Bool;
procedure OnBDEError;
public end;
var
MainForm: TMainForm; implementation {$R *.DFM}
procedure TMainForm.OnBDEError;
var Errlnfo: dbiErrlnfo; // Структура, содержащая информацию об оиибках
AStr: String; begin DbiGetErrorlnfо(True, Errlnfo);// Функция возвращает информацию об оиибке case Errlnfo.iError of
9733: AStr := 'Для создания записи недостаточно параметров';
10024: AStr := 'Оиибка доступа к данньм';
10245: AStr := 'База данных занята другим пользователем';
10038: AStr := 'Значение поля задано неверно';
11871: AStr := 1 Несоответствие типов1;
11959: AStr := 'В выражении отсутствует оператор GROUP BY'; else
AStr := 'Ошибочная операция с данными';
end;
ShowMessage(AStr);
end;
procedure TMainForm.FormShow(Sender;
TObject);
begin
hDB := Nil;
hCur := Nil;
Dbilnit(Nil); // Инициализация системы BDE
DbiOpenDatabase // Открытие базы данных (
'DBDEMOS', // Псевдоним базы данных
Nil, // Тип базы данных
dbiReadWrite, // Режим редактирования данных
dbiOpenShared, // Режим разделения данных
Nil, // Пароль
0, // Число дополнительных параметров
Nil, // Перечень полей для доп. параметров
Nil, // Список доп. параметров
hDB // Дескриптор базы данных
) ;
DbiSetPrivateDir('с:\temp'); // Определение временного каталога
DbiOpenTable // Открытие таблицы (
hDB, // Дескриптор базы данных
PChar(1 COUNTRY'), // Название таблицы
PChar(szParadox), // Тип таблицы (только для локальных БД)
Nil, // Название индекса (необязательный)
Nil, // IndexTagName - только для dBASE
0, / /0 - использовать первичный индекс
dbiReadWrite, // Режим редактирования данных
dbiOpenShared, // Режим разделения данных
xltField, // Режим трансляции данных
False, // Признак одностороннего перемецения курсора
Nil, // Дополнительные параметры
hCur // Дескриптор курсора таблицы
) ;
DbiGetCursorProps // Определение параметров курсора (
hCur, // Дескриптор курсора таблицы
CursProps // Структура параметров курсора
) ;
GetMem // Выделение памяти под буфер записи
(
RecBuf,
CursProps.iRecbufSize*SizeOf(Byte)
) ;
DbiSetToBegin(hCur); // Установка курсора в начало набора данных DbiGetNextRecord // Перемещение на первую запись
(
hCur, // Дескриптор курсора таблицы
dbiNoLock, // Режим ограничения доступа