我遇到一个很奇怪的问题,我的程序以前都是备份到本地的,现在突然自动备份到服务器上去了.(服务器上的路径和程序在本地选择的路径一样).是怎么回事呢.我是想备份到本地电脑上的呀.sqlserver备份
Private Sub mnudatabackup_Click()
    On Error GoTo ErrHandler    Dim i As String
    Dim SQLname As String
    Dim iReturn As String
    
    SQLname = Year(Now) & "年" & Month(Now) & "月" & "(QC).bak"
    With CommonDialog1
        
        .DialogTitle = "数据备份"
        .FileName = SQLname
        .Filter = "(数据库)*.bak|*.bak"
        .CancelError = True
        .ShowOpen
        .InitDir = App.Path & "\Databackup"
    End With
    iReturn = fBackupDatabase_a(CommonDialog1.FileName, "jzd")
    MsgBox iReturn
    Exit Sub
ErrHandler:
    ' 用户按了“取消”按钮
    MsgBox "用户取消备份操作或备份过程中出现错误,备份失败!", 48, "提示"
    Exit Sub
End Sub
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$
    Dim uid, pwd, addr As String
    
    On Error GoTo lbErr
    
    '读取数据库相关信息
    uid = sa    
    pwd = ""
    addr = 13.1.1.50
    
    '创建对象
    Set iDb = New ADODB.Connection
    
    '连接数据库服务器
    iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & uid & ";password=" & pwd & ";Initial Catalog=jzd;Data Source=" & addr
    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
    iReturn = "数据库备份成功!"
    GoTo lbExit
    
lbErr:
    iReturn = Error
lbExit:
    fBackupDatabase_a = iReturn
End Function

解决方案 »

  1.   

    服务端没有程序,只有数据库,文件名我换来换去都不行,调试中也看到了sBackUpfileName备份文件名为:"d:\备份数据\20060203.bak",但备份完后在本地电脑上找不到,而在服务器相应路径里却有该文件。不知什么原因。
      

  2.   

    SQL是这样的.没有办法啦
    有个方法是在SQL 系统上建个影射到自己本地的硬盘(如:Z:)
    Z:是本地的一个共享区
    在执行backup database语句到Z:
      

  3.   

    你用的是SQL语名备份,当然是在SQL服务器上的了
    如果要备份到本地硬盘这样做肯定不行