Подскажите пожалуйста как упаковать DBF-таблицу (через ado/odbc)
02.12.03 11:01: Перенесено модератором из 'Delphi & Builder' — здесь быстрее ответят — S
Здравствуйте, Mazay, Вы писали:
M>мне тоже интересно
M> Тока у меня БД на аксесе, интерфейс в Дельфи сделан, как сделать сжатие таблиц из моей программы.
M> Вопрос волнует уже давно, но ничего толкового найти не могу
((
А
искать не пробовал? Например, вот
так?
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, 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;
Здравствуйте, s.ts, Вы писали:
ST>Подскажите пожалуйста как упаковать DBF-таблицу (через ado/odbc)
Упаковка DBF через ODBC описана в
Q234756 :
try
{
CDatabase db;
db.OpenEx("driver=Microsoft Visual FoxPro Driver;sourcetype=dbc;sourcedb=C:\\Q234756_TEST\\test.dbc;exclusive=yes");
db.ExecuteSQL("set exclusive on;pack t1");
cout << "Table Packed!" <<endl;
db.Close();
}
catch(CDBException *E)
{
cout << E->m_strError <<endl;
}
Через ADO и VFPOLEDB провайдер аналогично.