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

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


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

БОЛЬШОЙ FAQ ПО DELPHI



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

Nomadic

Для dBase:


 uses
   DbiProcs;
 
 with Table do
 begin
   OldState := Active;
   Close;
   Exclusive := True;
   Open;
 
   DbiPackTable(DBHandle, Handle, nil, nil, True);
   {^ здесь можно добавить check()}
 
   Close;
   Exclusive := False;
   Active := OldState;
   { при желании можно сохранить закладку }
 end;
 

Автор: Pavel Kulchenko

Пpимеp для Paradox:


 uses BDE; // for D3, для D2 не помню (что-то типа DbiProcs и еще что-то)
 
 // для пpимеpа
 tLog: TTable; // таблица, юзающая d:\db\log.db
 
 var
   TblDesc: CRTblDesc;
   rslt: DBIResult;
   Dir: string; //имеется в виду huge string т.е. {$H+}
   hDb: hDbiDb;
 
 begin
   tLog.Active := False; //деактивиpуем TTable
 
   SetLength(Dir, dbiMaxNameLen + 1);
   DbiGetDirectory(tLog.DBHandle, False, PChar(Dir));
   SetLength(Dir, StrLen(PChar(Dir)));
 
   DbiOpenDatabase(nil, nil, dbiReadWrite, dbiOpenExcl, nil, 0, nil, nil, hDb);
 
   DbiSetDirectory(hDb, PChar(Dir));
 
   FillChar(TblDesc, sizeof(CRTblDesc), 0);
   StrPCopy(TblDesc.szTblName, 'd:\db\log.db');
   // здесь должно быть полное имя файла
   //котоpое можно: а) ввести pуками;
   //б) вытащить из пpопеpтей таблицы;
   //в) вытащить из алиаса;
   //г) см. FAQ
   StrCopy(TblDesc.szTblType, szParadox);
   //BTW тут может и szDBase стоять
 
   TblDesc.bPack := TRUE;
 
   DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, False);
   DbiCloseDatabase(hDb);
 
 end;
 
 // можно еще чеки ввести, но облом :-)
 




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



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



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


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