Здравствуйте, Mazay, Вы писали:
M>Здравствуйте, s.ts, Вы писали:
ST>>Подскажите пожалуйста как упаковать DBF-таблицу (через ado/odbc)
M>мне тоже интересно
M> Тока у меня БД на аксесе, интерфейс в Дельфи сделан, как сделать сжатие таблиц из моей программы.
M> Вопрос волнует уже давно, но ничего толкового найти не могу
((
для ADO/Access
подключаем uses ComObj;
const DBConnect='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
function TFormMain.CompactDB(DBFileName:string):boolean;
var A:olevariant;
begin
if not FileExists(DBFileName) then exit;
AConnect.Close;
Application.ProcessMessages;
A:=CreateOleObject('JRO.JetEngine');
try
A.CompactDatabase(Format(DBConnect,[DBFileName]),Format(DBConnect,[DBFileName+'.tmp']));
if FileExists(DBFileName+'.tmp') then
begin
DeleteFile(DBFileName);
RenameFile(DBFileName+'.tmp',DBFileName);
Result:=true;
end;
except
Result:=false;
end;
A:=UnAssigned;
end;