`
逆风的香1314
  • 浏览: 1415989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多


'*************************************************************************
'**模 块 名: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
   
    '生成数据库恢复语句
    iSql = "restore database [" & sDataBaseName & "]" & vbCrLf & _
        "from disk='" & sBackUpfileName & "'" & vbCrLf & _
        "with file=" & sBackupNumber & vbCrLf
    With iRe
        While Not .EOF
            iReturn = iRe("PhysicalName")
            iI = InStrRev(iReturn, ".")
            iReturn = IIf(iI = 0, "", Mid(iReturn, iI)) & "'"
            iSql = iSql & ",move '" & iRe("LogicalName") & _
                    "' to '" & sDataBasePath & sDataBaseName & iReturn & vbCrLf
            .MoveNext
        Wend
        .Close
    End With
    iSql = iSql & IIf(sReplaceExist, ",replace", "")
   
    iDb.Execute iSql
    iReturn = ""
    GoTo lbExit
   
lbErr:
    iReturn = Error
lbExit:
    fRestoreDatabase_a = iReturn
End Function

分享到:
评论

相关推荐

    VB实现SQL Server数据库备份恢复.rar_sql server 备份_vb sql_数据库备份_数据库管理

    标题中的“VB实现SQL Server数据库备份恢复”表明我们将关注如何使用VB编程语言来编写脚本或应用程序,以执行SQL Server的备份和恢复操作。VB是一种面向对象的编程语言,它提供了丰富的库和API,可以方便地与SQL ...

    VB实现SQL Server数据库备份和恢复的方法研究.pdf

    VB实现SQL Server数据库备份和恢复的方法研究.pdf

    VB中实现SQL Server数据库备份和恢复.doc

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

    用vb实现sqlserver数据库的备份与恢复

    ### 用VB实现SQLServer数据库的备份与恢复 #### 概述 在现代信息系统中,数据的安全性至关重要。尤其对于数据库应用系统而言,确保数据安全是保障系统稳定运行的基础。然而,在实际操作过程中,诸如病毒攻击、人为...

    VB6.0 SqlServer数据库备份还原程序.rar

    VB6.0 SqlServer数据库备份还原程序,你可以附加的数据库文件路径--(支持拖放),mdf和ldf文件存放的路径要对应LDF文件,需要你填写在SQL中还原的数据库的名字。操作方法:打开后首先需要连接数据库,不然会提示没有...

    VB实现SQL Server数据库远程备份_还原一法.pdf

    【VB实现SQL Server数据库远程备份/还原方法】 在IT领域,数据库管理是至关重要的,特别是对于使用SQL Server作为后台数据库的管理系统。为了确保数据的安全性和防止数据丢失,定期备份是必要的。本文着重介绍了一...

    VB逻辑备份oracle、sqlserver数据库

    本文将深入探讨如何使用VB(Visual Basic)编写逻辑备份程序来实现Oracle和SQL Server数据库的备份。 首先,理解备份策略至关重要。在描述中提到的备份策略是一种常见的滚动备份策略,也被称为“覆盖式”或“逐日...

    VB代码实现SQL数据库的备份、新建、恢复

    本篇将详细探讨如何使用VB代码来实现对SQL Server数据库的备份、新建和恢复操作。 一、SQL数据库的备份 SQL数据库备份是保护数据免受意外丢失或损坏的关键步骤。在VB中,我们可以使用SQL Server的Transact-SQL命令...

    SQL SERVER数据库备份恢复工具绿色版

    标题中的“SQL SERVER数据库备份恢复工具绿色版”指的是一个专门针对Microsoft SQL Server数据库系统设计的轻量级备份和恢复应用程序。这个工具旨在简化数据库管理,为用户提供自动化备份和快速恢复的功能,确保数据...

    一种实现SQLServer数据库的备份和恢复的方法.pdf

    知识点四:SQL Server数据库备份与恢复的SQL语句 在SQL Server中,备份数据库的SQL语句形式为BACKUP DATABASE <database_name> TO <backup_device> WITH...,而恢复的SQL语句形式为RESTORE DATABASE <database_name>...

    VB中SQL数据备份/还原

    在VB(Visual Basic)编程环境中,SQL数据备份与还原是重要的数据库管理任务,它涉及到对SQL Server数据库的数据安全性和恢复策略。以下是对VB中SQL数据备份/还原的详细讲解: 一、SQL Server 数据库备份 1. 备份...

    ASP中实现SQL数据库备份、恢复

    ### ASP中实现SQL数据库备份与恢复 在ASP(Active Server Pages)环境中进行SQL数据库的备份与恢复是一项重要的数据管理任务,对于确保数据安全性和业务连续性具有重要意义。本文将详细介绍如何在ASP中实现SQL ...

    用VB备份和恢复SQL Server数据库的方法

    【VB SQL】VB编程语言与SQL Server数据库的交互主要用于数据管理,包括备份和恢复操作。在VB中,可以通过ODBC(Open Database Connectivity)驱动程序连接到SQL Server数据库,实现对数据库的读写操作。以下是对VB...

    SQL Server备份与恢复 VB开发的简单例子.rar

    T-SQL的`BACKUP DATABASE`命令用于创建数据库备份,而VB可以通过ADO(ActiveX Data Objects)连接到SQL Server,并执行这些命令。在这个例子中,开发者可能创建了一个VB窗体,用户输入相关的备份参数(如备份文件...

    SQL2000数据库备份还原For VB

    在VB中操作SQL Server 2000数据库备份与还原,主要涉及以下知识点: 1. **ADO (ActiveX Data Objects)**:VB使用ADO作为与SQL Server交互的主要接口,它提供了一组COM对象,如Connection、Command、Recordset等,...

    VB访问 SQL Server数据库技术.pdf

    【VB访问SQL Server数据库技术】 VB(Visual Basic)是一种由微软公司开发的编程语言,尤其适合于构建Windows应用程序。在VB中访问SQL Server数据库通常采用两种主要的技术:RDO(远程数据对象)和ADO(ActiveX数据...

    VB数据库备份与恢复

    在这个VB(Visual Basic)项目中,我们关注的是如何利用VB作为开发工具来实现对SQL Server数据库的备份与恢复功能。下面将详细解释这个过程涉及的关键知识点。 1. **VB编程基础**:VB是一种面向对象的编程语言,...

    SQL Server数据库的备份与还原

    首先,我们要理解SQL Server数据库备份的重要性。备份是为了防止数据丢失,可能是由于硬件故障、软件错误、恶意攻击或自然灾害等原因。定期备份能确保在灾难发生时能够快速恢复业务运行,降低数据损失的风险。 在...

    VB SQL SERVER 2000 数据库 连接 实例 源码 下载

    - **ADO(ActiveX Data Objects)**:在VB中,通常使用ADO作为数据访问接口来连接和操作SQL Server数据库。ADO提供了一组COM对象,如Connection、Command、Recordset等,用于建立连接、执行SQL语句和处理结果集。 ...

    新手购物车用的.NET和sql Server数据库

    标题中的“新手购物车用的.NET和sql Server数据库”表明这是一个关于使用.NET框架和SQL Server数据库来构建初级购物车系统的项目。在这个系统中,.NET将作为后端开发的主要技术,而SQL Server则用于存储和管理数据。...

Global site tag (gtag.js) - Google Analytics