![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите кто моооооооооожет сжать ч-з ADO базу ACCESS [D5, Access]
gs © (2003-10-11 19:31:00)
Подскажите кто моооооооооожет сжать ч-з ADO базу ACCESS заранее большущее спасибо!
nv-vetal (2003-10-11 21:43:00) [1]
кстати, через je.CompactDatabase можна задать пароль на базу данных...
sniknik (2003-10-11 20:07:00) [2]
Архиватор не подойдет? :о)
кстати ADO сжимать не может, может DAO или JRO (пример), именно они работают непосредственно работают с базой Access.
переделай под себя
function TDMod.PackAccess(BaseName: string): boolean;
var je: Variant;
sPath: string;
begin
result:= false;
if Copy(UpperCase(BaseName), Length(BaseName)-3, 4) <> ".MDB" then BaseName:= BaseName + ".MDB";
if Pos(":\",BaseName) = 0 then BaseName:= GetCurrentDir+"\"+BaseName;
sPath:= ExtractFilePath(BaseName);
try
try
ADOConnection1.Close;
ADOConnection2.Close;
je:=CreateOleObject("JRO.JetEngine");
je.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+BaseName+";",
"Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+sPath+"NewBase$$$.Mdb;"+
"Jet OLEDB:Encrypt Database=True");
DeleteFile(BaseName);
RenameFile(sPath+"NewBase$$$.Mdb", BaseName);
result:= true;
except
on E: Exception do DoIfError(E.Message);
end;
finally
je:= Null;
end;
end;