pb中压缩整理access数据库文件(mdb)

王朝厨房·作者佚名  2007-01-03
窄屏简体版  字體: |||超大  

下面直接给出方法函数:

1、申明外部函数,用来取系统的临时路径。 FUNCTION ulong GetTempPath(ulong nBufferLength,ref string lpBuffer) LIBRARY "kernel32.dll" ALIAS FOR "GetTempPathA"

2、核心方法:

global type gf_CompactAndRepairAccessDB from function_object

end type

forward prototypes

global function integer gf_compactandrepairaccessdb (string as_mdb)

end prototypes

global function integer gf_compactandrepairaccessdb (string as_mdb);

//检查数据库文件是否存在

if not FIleExists(as_MDB) then return -1

//创建临时文件名

string ls_tmpFIle

ls_tmpFIle =Space(255)

GetTempPath(255,ls_tmpFIle)

ls_tmpFIle+="temp.mdb"

//创建DBEngine

integer result

oleobject ole_DBEngine

ole_DBEngine = create oleobject

result =ole_DBEngine.connecttonewobject("JRO.JetEngine")

//创建失败

if result<>0 then return result

//通过DBEngine 压缩数据库文件

string sProvider = ’Provider=Microsoft.Jet.OLEDB.4.0;’

string sOldMDB,sNewMDB

sOldMDB = sProvider + ’Data Source= ’ + as_MDB

sNewMDB = sProvider + ’Data Source= ’ + ls_tmpFIle

ole_DBEngine.CompactDatabase(sOldMDB, sNewMDB)

destroy ole_DBEngine

//拷贝刚刚压缩过临时数据库文件至原来位置

FIleCopy(ls_tmpFIle,as_MDB,true)

//删除临时文件

FileDelete(ls_tmpFIle)

return 0

end function

3、调用方法

gf_compactandrepairaccessdb("E:\eNo\collect.mdb")

应注意的是,在压缩和修复数据库的过程中,不能有其它的操作打开该数据库,否则操作会失败,因此请先关闭掉该数据库的连接,否则执行会报错。

此外这个函数经过修改后,可实现备份数据库的功能,相比较更简单一些,这里就不提供了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航