下面的函数可以实现压缩数据库
''' <summary>
''' 压缩数据库
''' </summary>
''' <remarks></remarks>
Private Sub CompactDatabase(ByVal pFilePath As String)
Dim pFileName As String
pFileName = GetFileName(pFilePath)
'检查数据库文件是否存在
If Len(Dir(pFilePath)) Then
' 如果需要备份就执行备份
If MessageBox.Show("是否备份?", "测试", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.Title = "选择保存目录"
wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.FileName = pFileName
Dim pFilter As String = GetFileExtName(pFileName)
wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.Filter = "文件(*." & pFilter & ")|*." & pFilter
wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.ShowDialog()
Dim r As DialogResult = wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.ShowDialog()
If r = Windows.Forms.DialogResult.Cancel Then
Exit Sub
End If
FileCopy(pFilePath, wsManageGlobalParam.g_ManageFileControl.SaveFileDialogFile.FileName)
End If
wsDataSet.SetNothing()
Dim jro As JRO.JetEngine
Dim pTempPath As String = GetTempPath()
jro = New JRO.JetEngine()
jro.CompactDatabase(wsManageGlobalParam.g_Connection & pFilePath, wsManageGlobalParam.g_Connection & pTempPath & "\" & pFileName)
Kill(pFilePath)
FileCopy(pTempPath & "\" & pFileName, pFilePath)
Kill(pTempPath & "\" & pFileName)
End If