PDA

View Full Version : با کدهای دلفی چطور دیتابیس خود را compact & repair کنیم



davoodmz
دوشنبه 16 مرداد 1385, 15:14 عصر
با سلام
در یکی از برنامه ها از بانکهای اکسس استفاده می شود و می خواهم از طریق دلفی دیتابیس را compact & repair کنم میدونید برای چی این کار رامیخواهم انجام دهم:
به خاطر اینکه من برای ذخیره تصاویر از آن دیتابیس استفاده میکنم و میخواهم بعد از پاک کردن یک یا چند تصویر دیتابیس compact & repair شود تا حجم واقعی خود را نشان دهد.

با تشکر
داود

monster_ant
دوشنبه 16 مرداد 1385, 17:57 عصر
کد زیر رو امتحان کن.....




var
despath : string
ole : oleVariant;

connection.Close;
ole := CreateOleObject('DAO.DBEngine.36');
ole.CompactDataBase(ExtractFilePath(ParamStr(0))
+ 'c:\DB.mdb' , ExtractFilePath(paramStr(0)) + 'c:\DB1.mdb');
DeleteFile(ExtractFilePath(paramStr(0)) + 'c:\DB.mdb');
RenameFile(ExtractFilePath(ParamStr(0))
+ 'c:\DB1.mdb' , ExtractFilePath(ParamStr(0)) + 'c:\DB.mdb');
despath := ExtractFilePath(Application.ExeName);
despath := despath + 'c:\DB.mdb';
connection.ConnectionString := despath
connection.open;

davoodmz
چهارشنبه 18 مرداد 1385, 07:24 صبح
باسلام
باتشکر ازشما
ولی این کد فکر کنم برای ارتباط بابانک اطلاعاتی است. لطفاً بیشتر توضیح بدهید.

با تشکر
داود

mzjahromi
چهارشنبه 18 مرداد 1385, 08:52 صبح
یه جستجو بکنبد در این زمینه کدهای زیادی نوشته شده

mr13668248
جمعه 03 مرداد 1393, 12:06 عصر
ای بابا
دستور
ole.CompactDataBase(ExtractFilePath(ParamStr(0)) + 'c:\DB.mdb' , ExtractFilePath(paramStr(0)) + 'c:\DB1.mdb');

تابع CompactDataBase کجاش بود؟ :شیطان:

omegao
جمعه 03 بهمن 1393, 10:44 صبح
سلام
آموزش بسيار عالي و كامل
http://delphi.about.com/od/sqlservermsdeaccess/l/aa091801a.htm

K.Mohammadreza
دوشنبه 10 فروردین 1394, 11:04 صبح
با سلام
در یکی از برنامه ها از بانکهای اکسس استفاده می شود و می خواهم از طریق دلفی دیتابیس را compact & repair کنم میدونید برای چی این کار رامیخواهم انجام دهم:
به خاطر اینکه من برای ذخیره تصاویر از آن دیتابیس استفاده میکنم و میخواهم بعد از پاک کردن یک یا چند تصویر دیتابیس compact & repair شود تا حجم واقعی خود را نشان دهد.

با تشکر
داود



function CompactAndRepair(DB: string): Boolean;
var
v: OLEvariant;
begin
Result := True;
try
v := CreateOLEObject('JRO.JetEngine');
try
V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4. 0;Data Source='+DB,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+
'x;Jet OLEDB:Engine Type=5');
DeleteFile(DB);
RenameFile(DB + 'x', DB);
finally
V := Unassigned;
end;
except
Result := False;
end;
end;