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

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

Для 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

;

Пpимеp для Paradox:

uses

BDE; // for D3, для D2 не помню (что-то типа DbiProcs и еще что-то) // для пpимеpа tLog: TTable; // таблица, юзающая d:dblog.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:dblog.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

; // можно еще чеки ввести, но облом :-)

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

Категории

Статьи

Советы

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