为什么我的access越来越大啊!老问题了!ado + access?
我的程序对数据库操作很频繁,结果数据库愈来愈大,但是我的数据库中的数据量
是保持不变的。那位能给格解决方案啊?
我的程序对数据库操作很频繁,结果数据库愈来愈大,但是我的数据库中的数据量
是保持不变的。那位能给格解决方案啊?
解决方案 »
- 怎么给TSimpleGraph中的矩形对象加背景图片?Delphi
- 關於數據庫內容讀出后繁簡轉換的問題
- 有没有WinSock API 做开发的好书,请推荐一本!
- 安装第三方控件!(菜鸟在线等)
- IB 组件的事务管理机制是什么样子的?
- 如何正确取得中西文混合后的字符串的任意子串,请教!!!
- 弱智问题:怎样在DELPHI5把SQL SEVER中某一数据库中的各个表的数据,导出为纯文本格式???
- 高手告诉我:ADO+SQLSERVER 如果控制POSERROR... 更新失败后的错误编号、错误信息。
- 怎样将当前时间转换成一个长整型的数值
- 在Demo下的TWebBrowser控件的例子在状态栏无法取得TWebBrowser控件所打开网页中鼠标所指向链接的文字,要怎么做才可以让状态栏得到TWebBrowser控件所打开网页的链接文字?
- RAve 報表detail 區只打印10條記錄
- 列求和
procedure TMainForm.access1Click(Sender: TObject);
var
dao:OLEVariant;
begin
// adoconnection1.Close;//压缩是以独占方式进行的;压缩前要关闭数据库连接。
screen.Cursor:=crHourGlass;
dao:=CreateOleObject('DAO.DBEngine.36');//access2000要用dao3.6,在access97上用35和36都可以
dao.CompactDatabase('vglocal.mdb','temp.mdb');
DeleteFile('vglocal2.mdb');
RenameFile('temp.mdb','vglocal.mdb');
// adoconnection1.Open;
// adotable1.Active:=true;
screen.Cursor:=crDefault;
Showmessage('本地数据库压缩完成');
end;
是保持不变的”是access2000么?access2000对大数据量的支持做的比97已经强许多了
我怎么在2000中找不到自动压缩这个选项
工具->选项->常规->关闭时压缩。
该文件在
C:\Program Files\Common Files\Microsoft Shared\DAO//压缩数据库
//DataBaseName 数据库的全路径
Function _CompactDataBase(DataBaseName :String) :Byte;
var
d:dbengine;
path,tmppath:String;
begin
path:=DataBaseName;
tmppath:=r_SysInfo.Path+'data\Ahead_ITRC_Localtmp.mdb';
try
d:=codbengine.Create;
i_dmDB.i_adoLocalDB.Close; //关闭数据连接
if fileexists(tmppath) then deletefile(tmppath); //如果有备用文件先删除
d.CompactDatabase(path ,tmppath,'',0,''); //压缩
deletefile(path); //删除
renamefile (tmppath,path); //重命名
except
result:=0;
exit;
end;
result:=1;
end;压缩了以后在进行连接
有一点必须要注意,在新安装的98没有
C:\Program Files\Common Files\Microsoft Shared\DAO 这个目录
所以得的程序使用的函数会包错,,解决办法,下载一个注册表文件
在安装程序的时候,吧2000下的这个目录拷贝到98下面,然后注册注册表文件
就可以值用函数了
,如果找不到注册表文件,发短消息给我。