【IT168技术文档】
当我们往数据库中添加数据,然后删除,如此反复,数据库就会变得很大,这样就需要对其进行压缩
下面的函数可以实现压缩数据库
''' <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