阅读:1983回复:0
[求助]VB开发SQLServer数据库备份和恢复
<P>在网上找了两个VB开发SQL的备份和恢复程序</P>
<P>Public Function BuckupDB(DBName As String, DeviceName As String, FilePath As String) As String <BR> Dim rst As New ADODB.Recordset <BR> <BR> Dim LogicalName, FilPath, str As String <BR> Dim i As Integer <BR> <BR> FilPath = FilePath + DeviceName <BR> <BR> i = InStr(DeviceName, ".") <BR> LogicalName = left(DeviceName, i - 1) <BR> <BR> On Error GoTo error <BR> If ConnectSMS("master") = 0 Then <BR> BuckupDB = "数据库打不开" <BR> Exit Function <BR> End If <BR> <BR> '查找设备名是否存在,存在则删掉 <BR> '新建设备 <BR> str = "select * from sysdevices where name='" ; LogicalName ; "'" <BR> rst.Open str, con, adOpenStatic, adLockOptimistic <BR> If Not rst.EOF Then <BR> con.Execute "sp_dropdevice '" ; LogicalName ; "','delfile'" <BR> End If <BR> rst.Close <BR> con.Execute "sp_addumpdevice 'disk','" ; LogicalName ; "','" ; FilPath ; "'" <BR> '备份 <BR> con.Execute "BACKUP DATABASE " + DBName + " to " ; LogicalName <BR> <BR> BuckupDB = "备份完毕!" <BR> CloseSMS <BR> Exit Function <BR> error: <BR> BuckupDB = err.description <BR> CloseSMS <BR> End Function <BR></P> <P>'*************************************************************************<BR>'**模 块 名:fBackupDatabase_a<BR>'**描 述:备份数据库,返回出错信息,正常恢复,返回""<BR>'**调 用:fBackupDatabase_a "备份文件名","数据库名"<BR>'**参数说明:<BR>'** sBackUpfileName 恢复后的数据库存放目录<BR>'** sDataBaseName 备份的数据名<BR>'** sIsAddBackup 是否追加到备份文件中<BR>'**说 明:引用Microsoft ActiveX Data Objects 2.x Library<BR>'**创 建 人:邹建<BR>'**日 期:2003年12月09日<BR>'*************************************************************************<BR>Public Function fBackupDatabase_a(ByVal sBackUpfileName$ _<BR> , ByVal sDataBaseName$ _<BR> , Optional ByVal sIsAddBackup As Boolean = False _<BR> ) As String<BR> <BR> Dim iDb As ADODB.Connection<BR> Dim iConcStr$, iSql$, iReturn$<BR> <BR> On Error GoTo lbErr<BR> <BR> '创建对象<BR> Set iDb = New ADODB.Connection<BR> <BR> '连接数据库服务器,根据你的情况修改连接字符串<BR> iConcStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=zj"<BR> iDb.Open iConcStr<BR> <BR> '生成数据库备份语句<BR> iSql = "backup database [" ; sDataBaseName ; "]" ; vbCrLf ; _<BR> "to disk='" ; sBackUpfileName ; "'" ; vbCrLf ; _<BR> "with description='" ; "zj-backup at:" ; Date ; "(" ; Time ; ")'" ; vbCrLf ; _<BR> IIf(sIsAddBackup, "", ",init")<BR> <BR> iDb.Execute iSql<BR> GoTo lbExit<BR> <BR>lbErr:<BR> iReturn = Error<BR>lbExit:<BR> fBackupDatabase_a = iReturn<BR>End Function<BR></P> <P>不知道哪一个可以,我再SQL上实践,首先要建一个备份设备,之后才建立备份名和路径,看着和第一个例子类似,但是</P> <P>If ConnectSMS("master") = 0 Then <BR> BuckupDB = "数据库打不开" <BR> Exit Function <BR> End If </P> <P>过不去</P> <P>第二个例子也是有问题</P> <P>请那位搞过这方面的大虾们,给点指导和建议...........</P> <P>多谢了.........<BR></P> |
|