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;
// можно еще чеки ввести, но облом :-)
|