Access数据库在线压缩的实现

Access数据库在线压缩的实现,第1张

Access数据库在线压缩的实现,第2张

如果在Access数据库中删除数据或对象,或者在Access项目中删除对象,Access数据库或Access项目可能会出现碎片,磁盘空之间的使用效率会降低。压缩Access数据库或Access项目实际上是复制文件并重新组织文件在磁盘上的存储方式。压缩优化了Access数据库和Access项目的性能。
所以当数据库越来越大导致的ASP程序慢得让人无法忍受的时候,我们就想到了压缩。但是常规的方式是本地下载然后用MSaccess完成压缩操作,然后上传!后来想,能不能在线压缩ACCESS数据库。为此我查了一些资料,还是没说到点子上。
我已经在这台机器上测试成功了,我还压缩了自己的网上论坛。结果完全正常,数据库已经从原来的3.7M压缩到2.1M,证明是可行的。注意:该程序实际上是通过FSO权限连接到JET engine的,所以请确保您的服务器支持FSO(filesystemobject)权限,并在使用之前安装最新的ACCESS驱动程序!出于安全考虑,请在压缩前备份原始数据库!通过测试的运行环境:
WIN98SE+PWS,WIN2000+IIS5.0
下面是我整理好的源代码,复制保存为compact.asp,上传到数据库所在的目录就可以正常使用了。


ACCESS数据库压缩程序


Universal ACCESS数据库在线压缩程序


该程序实际上是通过FSO权限与JET engine连接的,所以请确保您的服务器支持FSO(filesystemobject)权限,并在使用之前安装最新的ACCESS驱动程序!出于安全考虑,请在压缩前备份原始数据库!

运行环境:在WIN98SE+PWS中,win 2000+IIS 5.0

const jet _ 3x = 4
Function Compact DB(DBPATH,Boolis 97)
Dimfso Engine,strDBPath
strDBPath = left(DBPATH,instrrev(DBPath," \ "))
Set FSO = CreateObject(" Scripting。文件系统对象”)

如果fso。FileExists(dbPath)然后
Set Engine = CreateObject(" JRO。JetEngine”)

如果boolIs97 = "True "则
引擎。compact database " Provider = Microsoft。Jet . OLEDB.4.0数据源=" & dbpath,_
"提供者=Microsoft。Jet . OLEDB.4.0数据源= " & strDBPath & " temp.mdb"_
& " Jet OLEDB:Engine Type = " & Jet _ 3X
Else
引擎。compact database " Provider = Microsoft。Jet . OLEDB.4.0数据源=" & dbpath,_
"提供者=Microsoft。Jet . OLEDB.4.0数据源= " & strDBPath & " temp . MDB "
End If
FSO。CopyFile strDBPath & "temp.mdb ",Dbpath
FSO . delete file(strDBPath & " temp . MDB ")
setfso = nothing
setengine = nothing
compact db = "您的数据库," & dbpath & "已压缩" & vbcrlf
else
compact db = "找不到您输入的数据库路径或名称,请重试" & vbCrLf
End If

End
% >


压缩选项,请认真填写!



输入数据库的全名:

(包括扩展名,如MDB、ASA、ASP等。)


检查是否是ACCESS97数据库

(默认为ACCESS2000数据库)



Dim dbpath,boolis 97
dbpath = request(" dbpath ")
boolis 97 = request(" boolis 97 ")

If dbpath " "然后
dbpath = server . mappath(dbpath)
response . write(compact db(dbpath,boolis 97))
End If
% >


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Access数据库在线压缩的实现

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情