转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
VB实现SQL Server数据库备份/恢复         

VB实现SQL Server数据库备份/恢复

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2111 更新时间:2007/11/14 11:04:52


''''*************************************************************************
''''**模 块 名:fBackupDatabase_a
''''**描    述:备份数据库,返回出错信息,正常恢复,返回""
''''**调    用:fBackupDatabase_a "备份文件名","数据库名"
''''**参数说明:
''''**          sBackUpfileName  恢复后的数据库存放目录
''''**          sDataBaseName    备份的数据名
''''**          sIsAddBackup     是否追加到备份文件中
''''**说    明:引用Microsoft ActiveX Data Objects 2.x Library
''''**创 建 人:邹建
''''**日    期:2003年12月09日
''''*************************************************************************
Public Function fBackupDatabase_a(ByVal sBackUpfileName$ _
                                , ByVal sDataBaseName$ _
                                , Optional ByVal sIsAddBackup As Boolean = False _
                                ) As String
                               
    Dim iDb As ADODB.Connection
    Dim iConcStr$, iSql$, iReturn$
   
    On Error GoTo lbErr
   
    ''''创建对象
    Set iDb = New ADODB.Connection
   
    ''''连接数据库服务器,根据你的情况修改连接字符串
    iConcStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=zj"
    iDb.Open iConcStr
   
    ''''生成数据库备份语句
    iSql = "backup database [" & sDataBaseName & "]" & vbCrLf & _
            "to disk=''''" & sBackUpfileName & "''''" & vbCrLf & _
            "with description=''''" & "zj-backup at:" & Date & "(" & Time & ")''''" & vbCrLf & _
            IIf(sIsAddBackup, "", ",init")
           
    iDb.Execute iSql
    GoTo lbExit
   
lbErr:
    iReturn = Error
lbExit:
    fBackupDatabase_a = iReturn
End Function

''''*************************************************************************
''''**模 块 名:frestoredatabase_a
''''**描    述:恢复数据库,返回出错信息,正常恢复,返回""
''''**调    用:frestoredatabase_a "备份文件名","数据库名"
''''**参数说明:
''''**          sDataBasePath  恢复后的数据库存放目录
''''**          sBackupNumber  是从那个备份号恢复
''''**          sReplaceExist  指定是否覆盖已经存在的数据
''''**说    明:引用Microsoft ActiveX Data Objects 2.x Library
''''**创 建 人:邹建
''''**日    期:2003年12月09日
''''*************************************************************************
Public Function fRestoreDatabase_a(ByVal sBackUpfileName$ _
                                , ByVal sDataBaseName$ _
                                , Optional ByVal sDataBasePath$ = "" _
                                , Optional ByVal sBackupNumber& = 1 _
                                , Optional ByVal sReplaceExist As Boolean = False _
                                ) As String
   
    Dim iDb As ADODB.Connection, iRe As ADODB.Recordset
    Dim iConcStr$, iSql$, iReturn$, iI&
   
    On Error GoTo lbErr
   
    ''''创建对象
    Set iDb = New ADODB.Connection
    Set iRe = New ADODB.Recordset
   
    ''''连接数据库服务器,根据你的情况修改连接字符串
    iConcStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=zj"
    iDb.Open iConcStr
   
    ''''得到还原后的数据库存放目录,如果没有指定,存放到SQL SERVER的DATA目录
    If sDataBasePath = "" Then
        iSql = "select filename from master..sysfiles"
        iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly
        iSql = iRe(0)
        iRe.Close
        sDataBasePath = Left(iSql, InStrRev(iSql, "\"))
    End If
   
    ''''检查数据库是否存在
    If sReplaceExist = False Then
        iSql = "select 1 from master..sysdatabases  where name=''''" & sDataBaseName & "''''"
        iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly
        If iRe.EOF = False Then
            iReturn = "数据库已经存在!"
            iRe.Close
            GoTo lbExit
        End If
        iRe.Close
    End If
   
    ''''关闭用户进程,防止其它用户正在使用数据库,导致数据恢复失败
    iSql = "select spid from master..sysprocesses where dbid=db_id(''''" & sDataBaseName & "'''')"
    iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly
    While iRe.EOF = False
        iSql = "kill " & iRe(0)
        iDb.Execute iSql
        iRe.MoveNext
    Wend
    iRe.Close
   
    ''''获取数据库恢复信息
    iSql = "restore filelistonly from disk=''''" & sBackUpfileName & "''''" & vbCrLf & _
        "with file=" & sBackupNumber
    iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly
   
    ''''生成数据

[1] [2]  下一页


[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]关于Windows2000Server的灾难恢复  [常用软件][网络]下载服务革命性风暴Poco Server评测
[C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…  [C语言系列]SQL Server到DB2连接服务器的实现
[C语言系列]SQL Server到SYBASE连接服务器的实现  [C语言系列]SQL Server到SQLBASE连接服务器的实现
[C语言系列]SQL Server连接VFP数据库的实现  [C语言系列]ASP+SQL Server之图象数据处理
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台