Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Пакование таблиц 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;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS