【问题标题】:File Structure as seen by remote Server using VB.Net远程服务器使用 VB.Net 看到的文件结构
【发布时间】:2012-03-26 15:22:14
【问题描述】:

我正在使用下面的代码以编程方式使用 VB.Net 恢复 SQL 数据库

        Dim srvConn2 As New ServerConnection(strDataSource)
        srvConn2.LoginSecure = False
        srvConn2.Login = strDBUserID
        srvConn2.Password = strDBPassword
        Dim srv3 As New Server(srvConn2)
        Dim res As Restore = New Restore()

        If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
          res.Devices.AddDevice(OpenFileDialog1.FileName, DeviceType.File)
          res.Database = "MyDatabaseName"
          res.ReplaceDatabase = True
          res.SqlRestore(srv3)
          MsgBox("Restore Complete", vbInformation)
        End If

当备份文件位于运行数据库的同一台机器上时,这可以正常工作。当数据库在网络上的另一台机器上时,问题就开始了。有没有办法让 OpenFileDialog 显示远程机器的数据结构,以便可以从那里加载数据库备份文件?当您尝试手动恢复数据库时,SQL Management Studio 会显示远程文件结构。我想知道是否有类似于 SQL Management Studio 中出现的控件。

如果无法做到这一点,有没有办法让远程 SQL 服务器从本地机器上的文件中恢复数据库?我宁愿不使用共享网络驱动器或 UNC 路径,因为这应该尽可能简单,而且我不希望用户不得不玩共享和其他东西。

【问题讨论】:

    标签: sql vb.net smo database-backups


    【解决方案1】:

    您的第一种情况是您的代码在本地运行并且 SQL 是远程的并且备份是远程的。浏览远程服务器上的文件没有标准控制,但如果你有足够的权限,你可以通过 SQL 的 xp_cmdshell 命令(link)访问远程文件系统。您可以使用 xp_cmdshell 编写自己的控件,使其看起来类似于 OpenFileDialog。

    您的第二种情况是备份是本地的。如果不提供正确的 UNC 路径,SQL 绝对无法访问它。

    一种解决方法是允许用户选择一个本地文件,然后(在用户不知道的情况下)程序会将此文件上传到远程 SQL 服务器上的预定位置,然后 SQL 从该位置恢复它。

    【讨论】:

    • 你好罗斯。感谢您的回答,对于迟到的回复感到抱歉。我会考虑您的建议以找到解决方案。
    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2019-01-20
    • 2021-10-13
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多