pb中压缩整理access数据库文件(mdb)
下面直接给出方法函数:<BR><BR> 1、申明外部函数,用来取系统的临时路径。FUNCTION ulong GetTempPath(ulong nBufferLength,ref string lpBuffer) LIBRARY "kernel32.dll" ALIAS FOR "GetTempPathA"<BR><BR> 2、核心方法:<BR><BR>global type gf_CompactAndRepairAccessDB from function_object<BR>end type <BR>forward prototypes<BR>global function integer gf_compactandrepairaccessdb (string as_mdb)<BR>end prototypes<BR>global function integer gf_compactandrepairaccessdb (string as_mdb);<BR>//检查数据库文件是否存在 <BR>if not FIleExists(as_MDB) then return -1<BR>//创建临时文件名<BR>string ls_tmpFIle<BR>ls_tmpFIle =Space(255)<BR>GetTempPath(255,ls_tmpFIle)<BR>ls_tmpFIle+="temp.mdb"<BR>//创建DBEngine<BR>integer result<BR>oleobject ole_DBEngine<BR>ole_DBEngine = create oleobject <BR>result =ole_DBEngine.connecttonewobject("JRO.JetEngine") <BR>//创建失败<BR>ifresult<>0 then return result<BR>//通过DBEngine 压缩数据库文件 <BR>string sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;' <BR>string sOldMDB,sNewMDB<BR>sOldMDB = sProvider + 'Data Source= ' + as_MDB<BR>sNewMDB = sProvider + 'Data Source= ' + ls_tmpFIle<BR>ole_DBEngine.CompactDatabase(sOldMDB, sNewMDB)<BR>destroy ole_DBEngine<BR>//拷贝刚刚压缩过临时数据库文件至原来位置 <BR>FIleCopy(ls_tmpFIle,as_MDB,true)<BR>//删除临时文件<BR>FileDelete(ls_tmpFIle)<BR>return 0<BR>end function<BR><BR> 3、调用方法<BR><BR>gf_compactandrepairaccessdb("E:\eNo\collect.mdb")<BR><BR><BR><BR> 应注意的是,在压缩和修复数据库的过程中,不能有其它的操作打开该数据库,否则操作会失败,因此请先关闭掉该数据库的连接,否则执行会报错。 <BR><BR> 此外这个函数经过修改后,可实现备份数据库的功能,相比较更简单一些,这里就不提供了。
页:
[1]