Пакование таблиц dBASE 2

Советы » DBASE и DBF » Пакование таблиц dBASE 2

Упаковка таблиц dBASE требует вызова BDE функции DbiPackTable. Пример ее использования показан ниже, включая проверку на ошибки. Чтобы воспользоваться функцией DbiPackTable, вызывающий модуль должен в своей секции uses иметь модули-обертки BDE DbiTypes, DbiErrs и DbiProcs.

При неудачном вызове DbiPackTable, сообщение об ошибке не генерится. Для того, чтобы понять как функция сработала, вам необходимо проверить возвращаемое ею значение. В случае успешного выполнения возвращаемое значение равно DBIERR_NONE. Любое другое значение указывает на ошибку, а с помощью него можно определить саму ошибку, ее причину, и наметить действия, необходимые для ее устранения.

Вот сам пример:

procedure

TForm1.Button1Click(Sender: TObject); var

Error: DbiResult; ErrorMsg: string

; Special: DBIMSG; begin

table1.Active := False

; try

Table1.Exclusive := True

; Table1.Active := True

; Error := DbiPackTable(Table1.DBHandle, Table1.Handle, nil

, szdBASE, True

); Table1.Active := False

; Table1.Exclusive := False

; finally

Table1.Active := True

; end

; case

Error of

DBIERR_NONE: ErrorMsg := 'Успешно'; DBIERR_INVALIDPARAM: ErrorMsg := 'Указанное имя таблицы или указатель на имя таблицы ' + 'равен NULL'; DBIERR_INVALIDHNDL: ErrorMsg := 'Указанный дескриптор базы данных или курсора ' + 'неверен или равен NULL'; DBIERR_NOSUCHTABLE: ErrorMsg := 'Таблица с таким именем не существует'; DBIERR_UNKNOWNTBLTYPE: ErrorMsg := 'Неизвестный тип таблицы'; DBIERR_NEEDEXCLACCESS: ErrorMsg := 'Таблица открыта не в эксклюзивном режиме'; else

DbiGetErrorString(Error, Special); ErrorMsg := '[' + IntToStr(Error) + ']: ' + Special; end

; MessageDlg(ErrorMsg, mtWarning, [mbOk], 0); end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com