CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

数据备份问题,请指点~~~~~~

楼主xhstudio(希辉)2003-04-02 18:33:00 在 VB / 数据库(包含打印,安装,报表) 提问

我做了一个小程序,需要将数据备份,可试了几个压缩控件都不好用  
  哪位大哥有好用的给小弟一个好用的控件或好的备份方法,谢谢了~~~~  
  问题点数:50、回复次数:7Top

1 楼ivt(零下一度(.net版))回复于 2003-04-02 19:07:53 得分 0

如是SQL数据库  
  直接用  
        backup   database   XXXX   to   disk='c:\backup\XXX.bak'  
  就行        
        restore   database   XXXX   from   disk=''Top

2 楼xhstudio(希辉)回复于 2003-04-04 13:16:24 得分 0

是ACCESS的数据库呀  
  本来我想用压缩控件的,可是没找到好用的,好多都不好用,还有别的办法吗Top

3 楼xayzmb(行者)回复于 2003-04-04 13:34:59 得分 0

导出到文本文件  
  恢复时  
  再从文本文件读回来。Top

4 楼TRUE(求知)回复于 2003-04-04 13:40:14 得分 0

access   有压缩的功能,可以查找一下Top

5 楼xhstudio(希辉)回复于 2003-04-04 13:50:54 得分 0

可能是我没说明白吧  
  把数据备份到软盘上啊,我想还压缩   下好吧,那么不就要用到压缩控件  
  我的ACCESS库里有3个表,做文本不好吧,如果文件大于1。44了,那就要分盘,  
  所以本本和ACCESS本身的压缩好像就不实用了吧  
   
  大家做程序的时候不做备份功能吗?Top

6 楼zhangbob(★★向麦兜学习,胖一点,再胖一点)回复于 2003-04-04 15:17:44 得分 50

'   压缩   Access   数据库  
  Public   Sub   CompactJetDatabase(SourceFile   As   String,   Optional   Password   As   String,   Optional   BackupOriginal   As   Boolean   =   True)  
        On   Error   GoTo   CompactErr  
         
        Dim   strBackupFile   As   String  
        Dim   strTempFile   As   String  
   
        '   判断来源文件是否存在  
        If   Dir(SourceFile)   <>   ""   Then  
              '   如果需要备份原文件  
              If   BackupOriginal   =   True   Then  
                    strBackupFile   =   GetSourceFilePath(SourceFile)   &   "Backup.mdb"  
                    If   Dir(strBackupFile)   <>   ""   Then  
                          Kill   strBackupFile  
                    End   If  
                     
                    FileCopy   SourceFile,   strBackupFile  
              End   If  
               
              '   建立压缩文件名  
              strTempFile   =   GetSourceFilePath(SourceFile)   &   "Temp.mdb"  
              If   Dir(strTempFile)   <>   ""   Then  
                    Kill   strTempFile  
              End   If  
               
              '   通过   DBEngine   压缩文件,注意,您必须引用   Microsoft   DAO   3.xx   Object   Library  
              DBEngine.CompactDatabase   SourceFile,   strTempFile,   ,   ,   ";Pwd="   &   Password   &   ";"  
              '   删除旧文件  
              Kill   SourceFile  
               
              '   重新命名新文件名  
              Name   strTempFile   As   SourceFile  
        Else  
              MsgBox   SourceFile   &   "File   not   fond!",   vbExclamation  
        End   If  
         
  CompactErr:  
        If   Err.Number   <>   0   Then  
              MsgBox   Err.Description   &   Err.Number,   vbCritical,   "error"  
        End   If  
         
        On   Error   GoTo   0  
        Exit   Sub  
  End   Sub  
   
  Public   Function   GetSourceFilePath(SourceFile   As   String)   As   String  
        Dim   n   As   Integer  
         
        n   =   InStrRev(SourceFile,   "\")  
        GetSourceFilePath   =   Left(SourceFile,   n)  
  End   Function  
   
  Public   Function   fBrowseForFolder(hWndOwner   As   Long,   sPrompt   As   String)   As   String  
        Dim   iNull         As   Integer  
        Dim   lpIDList   As   Long  
        Dim   lResult     As   Long  
        Dim   sPath         As   String  
        Dim   udtBI         As   BrowseInfo  
         
        With   udtBI  
                .hWndOwner   =   hWndOwner  
                .lpszTitle   =   lstrcat(sPrompt,   "")  
                .ulFlags   =   BIF_RETURNONLYFSDIRS  
        End   With  
         
        lpIDList   =   SHBrowseForFolder(udtBI)  
         
        If   lpIDList   Then  
                sPath   =   String$(MAX_PATH,   0)  
                lResult   =   SHGetPathFromIDList(lpIDList,   sPath)  
                Call   CoTaskMemFree(lpIDList)  
                 
                iNull   =   InStr(sPath,   vbNullChar)  
                If   iNull   Then   sPath   =   Left$(sPath,   iNull   -   1)  
        End   If  
         
        fBrowseForFolder   =   sPath  
         
  End   Function  
   
  '   备份这个数据库  
  Public   Function   BackupDB(ByVal   SourceFile   As   String,   ByVal   BackupFolderName   As   String)   As   Boolean  
        On   Error   Resume   Next  
        Dim   lFileOp     As   Long  
        Dim   lResult     As   Long  
        Dim   lFlags       As   Long  
        Dim   SHFileOp   As   SHFILEOPSTRUCT  
        Dim   strSourceDir   As   String  
        Dim   strDestinationDir   As   String  
         
        Screen.MousePointer   =   vbHourglass  
         
        If   Right(BackupFolderName,   1)   <>   "\"   Then  
              BackupFolderName   =   BackupFolderName   &   "\"  
        End   If  
         
        lFileOp   =   FO_COPY  
        lFlags   =   lFlags   And   Not   FOF_SILENT  
        lFlags   =   lFlags   Or   FOF_NOCONFIRMATION  
        lFlags   =   lFlags   Or   FOF_NOCONFIRMMKDIR  
        lFlags   =   lFlags   Or   FOF_FILESONLY  
         
        With   SHFileOp  
              .wFunc   =   lFileOp  
              .pFrom   =   SourceFile   &   vbNullChar  
              .pTo   =   BackupFolderName   &   "PMBackup"   &   Format(Date,   "mmdd")   &   ".pmb"  
              .fFlags   =   lFlags  
        End   With  
        lResult   =   SHFileOperation(SHFileOp)  
         
        BackupDB   =   (lResult   =   0)  
         
        Screen.MousePointer   =   vbDefault  
  End   Function  
   
  '   还原这个数据库  
  Public   Function   RestoreDB(ByVal   SourceFile   As   String,   ToFile   As   String)   As   Boolean  
        On   Error   Resume   Next  
        Dim   lFileOp     As   Long  
        Dim   lResult     As   Long  
        Dim   lFlags       As   Long  
        Dim   SHFileOp   As   SHFILEOPSTRUCT  
         
        Screen.MousePointer   =   vbHourglass  
         
        lFileOp   =   FO_COPY  
        lFlags   =   lFlags   And   Not   FOF_SILENT  
        lFlags   =   lFlags   Or   FOF_NOCONFIRMATION  
        lFlags   =   lFlags   Or   FOF_NOCONFIRMMKDIR  
        lFlags   =   lFlags   Or   FOF_FILESONLY  
         
        With   SHFileOp  
                .wFunc   =   lFileOp  
                .pFrom   =   SourceFile   &   vbNullChar  
                .pTo   =   ToFile   &   vbNullChar  
                .fFlags   =   lFlags  
        End   With  
        lResult   =   SHFileOperation(SHFileOp)  
         
        RestoreDB   =   (lResult   =   0)  
         
        Screen.MousePointer   =   vbDefault  
  End   FunctionTop

7 楼lxcc()回复于 2003-04-04 15:31:27 得分 0

upTop

相关问题

  • 一个ORACLE备份数据导入问题。请高手指点!
  • 一个ORACLE备份数据导入问题。请高手指点!!!
  • 数据库的备份,运行出错,请高手指点
  • 数据备份问题 请高手指点
  • 数据库的备份与恢复???(菜鸟级问题,请高手指点)
  • 请高手指点迷津:后台数据库的安全和备份问题
  • 我做了个数据库备份的程序,带源码,请大家多指点
  • 数据库备份与恢复的老问题,但一直未能完善解决,请指点!
  • 应用程序角色备份数据库问题,有劳zjcxc(邹建)指点
  • 数据备份?

关键词

  • 控件
  • 数据库
  • 数据
  • 文件
  • lflags
  • sourcefile
  • strtempfile
  • strbackupfile
  • 备份
  • getsourcefilepath

得分解答快速导航

  • 帖主:xhstudio
  • zhangbob

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo