用access做資料庫真頭疼啊!!有沒有?頻繁讀寫很容易1-2G大了.恐怖!
更奇怪是某些電腦才會.我自己用win2003怎么搞都正常.虛擬機裝的XP/win7也正常.不過我都自己裝的原版系統.
軟體啟動或退出時壓縮這個我知道.
但在軟體運行程序中由于軟體功能的原因沒法操作壓縮.
請教高手,有沒好辦法??
.
uj5u.com熱心網友回復:
工具中有個壓縮和修復資料庫的選項,應該能減少你的檔案大小,對內容沒影響的,uj5u.com熱心網友回復:
uses Sysutils,ComObj,Dialogs;
function DaoActive(var DaoObject:OleVariant):Boolean;
function DaoCompactDB(const FileName,Pwd:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;
implementation
function DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;
//壓縮Access資料庫
function DaoCompactDB(const FileName,Pwd:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
db.CompactDatabase(FileName,TempFile,,,';pwd='+Pwd);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;
//修復Access資料庫
function DaoRepairDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;
應該在DaoActive中檢查一下DAO版本,通用性才最強
uj5u.com熱心網友回復:
壓縮代碼有. 我在程式啟動時會壓縮下.但在程式運行程序中變大就沒辦法了.
想找出暴增的原因是什么??
uj5u.com熱心網友回復:
頻繁讀寫可以考慮用記憶體資料庫,退出程式時再寫入uj5u.com熱心網友回復:
access 好像沒這功能吧?uj5u.com熱心網友回復:
+1
檔案型資料庫一般洗掉資料時,只是做個洗掉標記,實際并無洗掉,所以檔案會越來越大,Access的修復壓縮功能就是將這些做了洗掉標記的資料真正洗掉,所以在頻繁的寫資料庫時,寫操作盡量減少
uj5u.com熱心網友回復:
改MSSQL吧。uj5u.com熱心網友回復:
看來的你的程式是常駐程式,不是經常重啟。那這樣用Access資料庫確實就用問題了,改換SQL Server或MySQL吧,不過還是SQL Server比較好一點。MySQL時間長了會斷開連接。比較不好控制。改別的資料庫只要改一下連接就可以了。代碼不一般不需要改動。uj5u.com熱心網友回復:
access資料量小還行,大了不可靠的。還是換資料庫吧,sqlite或sqlserver
uj5u.com熱心網友回復:
斷開不怕,不管你的TABLE,還是QUERY,執行時都會判斷是否與資料庫的連接已斷開,如果斷開會自動重連,不過肯定會耗費一定的時間
uj5u.com熱心網友回復:
我以前都用Access,現在用SQLite轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154465.html
標籤:數據庫相關
上一篇:高分求 DELPHI 控制視頻卡
