linghe
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数20
  • QQ
  • 铜币102枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1839回复:0

[求助]VB开发SQLServer数据库备份和恢复

楼主#
更多 发布于:2006-09-11 15:23
<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>
喜欢0 评分0
游客

返回顶部