CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

数据库备份怎么做?

楼主sdmyhy(非典型流氓)2004-05-04 12:20:31 在 VB / 基础类 提问

我写了一个小程序,有个功能是备份数据库,说白了也就是把数据库文件拷贝到另一个地方保存起来,一开始我是这样写的:  
    Dim   Yfile   As   String,   Bfile   As   String  
    Yfile   =   App.Path   +   "\Mydata.mdb"  
    Bfile   =   App.Path   +   "\MBak\Mydata.mdb"  
    FileCopy   Yfile,   Bfile  
  可程序老提示拒绝的权限,后来才知道是因为数据库正在使用中,没有关闭,请问怎么样才能关闭数据库,并把这个拷贝功能顺利完成呢?还有没有更好的数据库备份的方法? 问题点数:0、回复次数:6Top

1 楼kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)回复于 2004-05-04 12:54:46 得分 0

如果你用的是全局或者模块级连接,在备份前关闭它们即可:  
  con.Close  
  set   con=nothing  
  在备份完之后,重新连接。  
  另外,直接用app.path是不安全的,如果程序在根目录下就会出问题。  
  Private   Sub   Command1_Click()  
          Dim   strCurPath   As   String  
           
          If   Right(App.Path,   1)   <>   "\"   Then  
                  strCurPath   =   App.Path   &   "\"  
          Else  
                  strCurPath   =   App.Path  
          End   If  
          MsgBox   strCurPath  
  End   SubTop

2 楼tangxiaosan001(阿三)回复于 2004-05-04 13:11:08 得分 0

不如用backup咯。这个备份可以,但是还原的时候数据库要是关闭的。Top

3 楼mingtian2008(明天)回复于 2004-05-04 13:16:01 得分 0

upTop

4 楼xuminghua(企鹅)回复于 2004-05-04 15:24:57 得分 0

我写了DLL可以关闭任何程序中的连接   而且在这个DLL中还有好多别的功能     要就找我   XUMINGHUA3328·SOHU。COMTop

5 楼douhapy(双喜)回复于 2004-05-04 15:34:35 得分 0

在程序中将你使用到的连接关掉就可以了.  
  比如:  
  你使用了con   as   connection,则需再备份时set   conn=nothing;  
  你使用了rs   as   Recordset,则需再备份时set   rs   =   nothing;Top

6 楼sdmyhy(非典型流氓)回复于 2004-05-05 10:07:57 得分 0

con.Close  
  set   con=nothing  
  请问以上代码是什么意思?我好像没用过啊?  
  我在程序中是这样写的  
  data1.databasename=   "d:\mydata.mdb"  
  data1.recordsource=   "aaa"  
  我在另一个简单的程序中试验了一下用一下代码关闭的  
  data1.databasename=""  
  data1.refresh  
  这样就可以了,可是回到我的代码中,老是提示“对象变量或with块未设置”,我看了看出错的代码实在另一个窗体中  
      If   Form1.ListView1.ListItems.Count   >   0   Then  
      Dim   i,   Count   As   Integer  
      Count   =   Form1.ListView1.SelectedItem.Index  
      Form1.Data3.Recordset.MoveFirst  
      i   =   1  
      Do   While   i   <   Count  
          Form1.Data3.Recordset.MoveNext  
          i   =   i   +   1  
      Loop  
      Form1.ListViewItem   =   Count  
      Text1.Text   =   Form1.Data3.Recordset.Fields("jfdw")  
      Text2.Text   =   Form1.Data3.Recordset.Fields("jfje")  
      Yje   =   Text2.Text  
      Text5.Text   =   Form1.Data3.Recordset.Fields("pjbh")  
      Text4.Text   =   Form1.Data3.Recordset.Fields("bz")  
      If   TxN   =   ""   Then  
        Text3.Text   =   "系统"  
        Else  
        Text3.Text   =   TxN  
      End   If  
        End   If  
   
  我在程序中用了十几个data控件,我一一把他们的databasename属性都清空了,怎么还不行啊?快帮帮我吧,我的软件就剩下这么一个问题没有解决了,不能让我功败垂成啊。望朋友们教教我!Top

相关问题

  • 怎么备份数据库?
  • delphi程序怎么做到备份数据库
  • delphi程序怎么做到备份数据库?
  • 数据库备份怎么做,请教大侠
  • Oracle的数据库备份怎么写?
  • oracle9i数据库热备份如何做?
  • 如果你SQL数据库管理员,你会怎么做备份?
  • 自动备份SQL数据库表结构---谁知道怎么做?谢谢
  • 数据库备份?
  • 数据库备份

关键词

  • 数据库
  • 代码
  • 连接
  • 备份
  • strcurpath
  • yfile
  • 程序
  • 关闭
  • bfile
  • mydata

得分解答快速导航

  • 帖主:sdmyhy

相关链接

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

广告也精彩

反馈

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