我们在写很多单机MIS管理系统的时候经常会用到ACCESS数据库,ACCESS数据库在日积月累的操作工程中,数据库的重量会日益倍增,虽然我们在操作中删除了很多数据,增加了很多数据,但是数据库的大小却有增无减,这是因为我们操作数据库时,数据库只是简单操作了数据,实际数据并非真正删除,一般我们可通过ACCESS的压缩和修复数据库功能实现数据库的减肥(真正意义上的数据抛弃).那么我们如何使用VB语言来完成这个命令操作呢?
下面我们来讲讲如何使用DAO对象来处理这个命令:
首先我们要引用Microsoft Dao 3.6 Object Library对象
以下是代码:
Dim Db As DBEngine
Set Db=New DBEngine
Db.CompactDatabase App.Path & "\Data\Db.mdb",App.Path & "\Tmp.dat"
'第一个参数是需要压缩的数据库,第二个参数是压缩后新生成的数据库,第三到第五个参数都是可选参数,分别的含义是:第三个参数是建立新区域设定识别码,如果忽略将按照旧的数据库的区域设定识别码(程序后面会附带区域设定码),同时还可以建立新的数据库密码比如:"dbLangChineseSimplified ;pwd=1234"该意思是新数据的区域为简体中文,新的密码是1234;第4个参数是加密解密(参数后面会有详细说明)
比如:"dbEncrypt + dbVersion20"意思是加密数据库,按照20版本的密钥;第5个参数很简单了,意思就是如果需要修复和压缩的数据库存在密码,那么这一个参数就是必须填写的.格式";pwd="比如我们需要压缩的一个数据库带密码12345那么我们的写法将是:Db.CompactDatabase App.Path & "\Data\Db.mdb",App.Path & "\Tmp.dat" ,,,";pwd=12345"
FileCopy App.Path & "\tmp.dat", App.Path & "\Data\Db.mdb"
'这句话的意思就是将新的数据库复制到原来的数据库的位置覆盖.
Kill App.Path & "\Tmp.dat"
'删除新的数据库
Set Db=Nothing
下面附第3,4个参数的枚举常量
第三:
dbLangGeneral 默认语言English, German, French, Portuguese, Italian, and Modern Spanish
dbLangArabic 阿拉伯语
dbLangChineseSimplified 这个不用我说了嘛
dbLangChineseTraditional 这个也不用我说了嘛
dbLangCyrillic 俄罗斯语
dbLangCzech 捷克语
dbLangDutch 荷兰语
dbLangGreek 希腊语
dbLangHebrew 西博来人语(啥子玩意哦)
dbLangHungarian 匈牙利语
dbLangIcelandic 冰岛
dbLangJapanese 狗日的
dbLangKorean 韩国
dbLangNordic 北欧语(Microsoft Jet database engine version 1.0 only)
dbLangNorwDan 挪威和丹麦
dbLangPolish 波兰
dbLangSlovenian 斯罗文尼亚
dbLangSpanish 传统西班牙
dbLangSwedFin 瑞典和芬兰
dbLangThai 泰国
dbLangTurkish 土尔其
第四:
dbEncrypt Encrypt 压缩的加密方式
dbDecrypt 压缩的解密方式.
dbVersion10 创建数据库使用Microsoft Jet database engine version 1.0 文件压缩方式
dbVersion11 创建数据库使用Microsoft Jet database engine version 1.1 文件压缩方式
dbVersion20 创建数据库使用Microsoft Jet database engine version 2.0 文件压缩方式
dbVersion30 创建数据库使用Microsoft Jet database engine version 3.0 文件压缩方式