Access数据库压缩和修复

 

Access数据库压缩/修复

 

Access数据库多次操作(插入、删除、导入)后,数据库文件会变的很大。为了解决这个问题,下面提供一个数据库压缩/修复的方案。

第一步:在项目中添加引用msjro.dll

第二步:导入名称空间:Imports JRO

第三步:插入压缩/修复函数

   

 1 None.gif   '  <summary>
 2 None.gif
 3 None.gif     '  压缩/修复数据库
 4 None.gif
 5 None.gif     '  FileName要压缩/修复数据库文件的路径
 6 None.gif
 7 None.gif     '  </summary>
 8 None.gif
 9 ExpandedBlockStart.gifContractedBlock.gif     Protected   Sub CompressDb() Sub CompressDb(ByVal FileName As String)
10InBlock.gif
11InBlock.gif        Dim StrConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName
12InBlock.gif
13InBlock.gif        Dim StrConn2 As String = StrConn1.ToLower().Replace(".mdb""_temp.mdb")
14InBlock.gif
15InBlock.gif 
16InBlock.gif
17InBlock.gif        Dim fileName1 As String = FileName.Substring(FileName.LastIndexOf("\\"+ 1)
18InBlock.gif
19InBlock.gif        Dim fileName2 As String = fileName1.ToLower().Replace(".mdb""_temp.mdb")
20InBlock.gif
21InBlock.gif 
22InBlock.gif
23InBlock.gif        Try
24InBlock.gif
25InBlock.gif            '先备份
26InBlock.gif
27InBlock.gif            File.Copy(fileName1, fileName1.ToLower().Replace(".mdb""_bak.mdb"), True)
28InBlock.gif
29InBlock.gif 
30InBlock.gif
31InBlock.gif            '开始压缩修复
32InBlock.gif
33InBlock.gif            Dim DatabaseEngin As JetEngine = New JetEngine()
34InBlock.gif
35InBlock.gif            DatabaseEngin.CompactDatabase(StrConn1, StrConn2)
36InBlock.gif
37InBlock.gif 
38InBlock.gif
39InBlock.gif            '删除原来的Data.mdb,并将Data_temp.mdb更名为Data.mdb
40InBlock.gif
41InBlock.gif            File.Copy(fileName2, fileName1, True)
42InBlock.gif
43InBlock.gif            If File.Exists(fileName2) Then
44InBlock.gif
45InBlock.gif                File.Delete(fileName2)
46InBlock.gif
47InBlock.gif            End If
48InBlock.gif
49InBlock.gif 
50InBlock.gif
51InBlock.gif            '删除备份
52InBlock.gif
53InBlock.gif            File.Delete(fileName1.ToLower().Replace(".mdb""_bak.mdb"))
54InBlock.gif
55InBlock.gif            MessageBox.Show("压缩/修复数据库成功!")
56InBlock.gif
57InBlock.gif        Catch
58InBlock.gif
59InBlock.gif            '恢复备份
60InBlock.gif
61InBlock.gif            File.Copy(fileName1.ToLower().Replace(".mdb""_bak.mdb"), fileName1, True)
62InBlock.gif
63InBlock.gif 
64InBlock.gif
65InBlock.gif            '删除备份文件
66InBlock.gif
67InBlock.gif            File.Delete(fileName1.ToLower().Replace(".mdb""_bak.mdb"))
68InBlock.gif
69InBlock.gif            MessageBox.Show("压缩/修复数据库失败!")
70InBlock.gif
71InBlock.gif        End Try
72InBlock.gif
73ExpandedBlockEnd.gif    End Sub

74 None.gif

第四步:调用方法:CompressDb(数据库文件绝对路径)

实例:CompressDb(”c:\test\test.mdb”)


实例(图一)

实例(图二)

点击下载

转载于:https://www.cnblogs.com/duanzt/archive/2007/05/30/765043.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值