• Sqldemo备份与恢复路径不支持空格


    Sqldemo备份与恢复路径不支持空格
                            作者:jenry

         今天在调试程序中,偶尔发现了Sqldemo组件在备份与恢复数据库,在备份与恢复数据的方法中文件路径中不支持空格的现象。
    在程序执行中,通过“事件查看器”,“应用程序日志”,可能看到以下错误:
    我的数据备份路径是“C:\Program Files\中国亿万电器网\中国亿万电器成套报价系统\Data\Bak\Data20051021171145.bak”。
    1、3041:
    BACKUP 未能完成命令 BACKUP DATABASE [ItemSoft] TO  DISK = N'C:\Program',  DISK = N'Files\e10000\ItemSoft\Data\Bak\Data20051021171145.bak' WITH  INIT ,  NOUNLOAD ,  NOSKIP ,  STATS = 1,  NOFORMAT
    2、18204:
    BackupDiskFile::CreateMedia: 备份设备“C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Files\e10000\ItemSoft\Data\Bak\Data20051021171145.bak”create 失败。操作系统错误 = 3(系统找不到指定的路径。)

         当然你可以捕获程序异常来获得错误信息,由于我的程序已经修改过了,所以也就不写这一步了。
    通过以上的错误你可以很明显地知道是备份的数据文件找不到,这就感到很奇怪了,明明路径是正确的,为什么会发生这样的事情呢?
    由第二条错误信息可以告诉我们其实,真正的数据文件路径变成了“C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Files\e10000\ItemSoft\Data\Bak\Data20051021171145.bak”,而不是原来的“C:\Program Files\中国亿万电器网\中国亿万电器成套报价系统\Data\Bak\Data20051021171145.bak”。
    怎么造成这样?经过分析而是备份设备文件中或路径中存在有空格。上面的路径中“C:\Program Files\”有一个空格,结果构sqldemo组件提供的方法在执行提交是,将“BACKUP DATABASE”方法翻译成了第一条错误信息中的路径了。因此造成了数据备份与恢复失败。

        为了证明是sql server 的错误还是sqldemo的错误,查看sql server的联机帮助,找到了备份数据的命令,发现命令是支持带有空格路径的,如下所示:

        备份整个 MyNwind 数据库说明,下例创建用于存放 MyNwind 数据库完整备份的逻辑备份设备。

    -- Create a logical backup device for the full MyNwind backup.
    USE master
    EXEC sp_addumpdevice 'disk', 'MyNwind_1',
       DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'

    -- Back up the full MyNwind database.
    BACKUP DATABASE MyNwind TO MyNwind_1
    由此可以推断出,sqldemo在提供数据备份与恢复方法中是不支持带有空格路径的。上述是我个人遇到的情况,如有不正确的地方,希望大家能够提出更正。


     

  • 相关阅读:
    iOS controller 和 window 图层
    iOS CGAffineTransform 仿射变换
    iOS UIButton的UIEdgeInsets
    iOS UI的动态布局
    iOS 栅格动态布局
    iOS 系统键盘几个类型
    iOS 金融类高精度处理
    Sublime Text (崇高文本)
    iOS 静态库——制作bundle
    iOS 静态库——制作Framework
  • 原文地址:https://www.cnblogs.com/jenry/p/259999.html
Copyright © 2020-2023  润新知