'*************************************************************************
'**模 块 名: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数据库备份和恢复的方法研究.pdf
VB中实现SQL Server数据库备份和恢复
现在大型数据库管理系统都应该具有数据库的备份与恢复以防遇到不恻
VB6.0 SqlServer数据库备份还原程序,你可以附加的数据库文件路径--(支持拖放),mdf和ldf文件存放的路径要对应LDF文件,需要你填写在SQL中还原的数据库的名字。操作方法:打开后首先需要连接数据库,不然会提示没有...
这个文档是介绍,如何用vb实现sqlserver数据库的备份与恢复的,希望能帮到大家。
VB实现SQL Server数据库远程备份_还原一法.pdf
VB用程序新建SQL数据库,备份SQL数据库,恢复SQL数据的实例,如果再不给分的话,那我就不用CSDN了。
备份策略 备份文件在备份目录下保存一周,当前备份的数据自动覆盖掉上周的数据文件;即周日覆盖上周日数据文件,周一覆盖上周一数据文件…
基于VB开发工具,实现SQL SERVER 的数据库备份与恢复
用VB备份和恢复SQL Server数据库的方法,前后台数据连接是数据库基本,用VB调用SQL语言操作后台SQL数据库
用VB实现的SQL Server数据库的备份与还原
这个小软件是方便SQL数据库可以直接备份和还原,还带有自动备份功能,是我用C#做的,经过我测试发现只能备份一些小的数据库,具体能备份数据库上限不清楚,还有备份路径中的文件名和文件夹名都不能有空格,否则备份...
采用VB6.0编写的SQL SERVER 2000数据库的备份与恢复源代码。
VB实现的人事管理系统源代码+数据库SQL Server2014+程序说明。 一、本系统由以下对象组成: 1.窗体 (1)AddUser:添加用户; (2)Backup:数据库备份; (3)delete_staff:删除职员数据; (4)Login:系统...
sql server数据库的备份与还原
SQL Server备份与恢复,这是使用VB开发的一个简单例子,调用SQL自带的备份功能,主要是用于学习数据库基础应用,高手请飘过。
用VB实现SQL SERVER数据库的备份和恢复的方法
sqlserver数据库备份还原,可直接调EXE打开程序
第五部分,讲解数据库管理的备份恢复、导入导出与分离 附加,代理与复制;第六部分,给出了一套数据库应用系统的完整的案例及其源代码:教 学成绩管理系统的VB 实现与ASP实现;最后提供了三个附录:SQL 作业提交与...
VB NET sqlserver 销售管理系统,销售业务,销售发货,销售退货,回款管理,统计报表,基础信息管理、系统设置、备份和恢复数据、货品基本信息管理、业务员管理等。 版权所有(C) 作者个人自由创作室 VB.NET 销售...