微软SQLDmo 的一个小BUG,?
今天在用sqlDMO做数据备份和恢复时,Cannot open backup device 。根据经验应该是路径输出的有问题,仔细看了一下代码,没有任何问题,那就奇怪了,我在本机测试没有问题,在测试部就出问题了;环境原因,由于我用的是V 8.5 而目标机需要测试MSDE,应该兼容啊,不过还好,这个问题马上被排除,测试机也有8.5了,纳闷半分钟,我想莫非是由于程序本身的路径。。。。
System.Runtime.InteropServices.COMException (0x80040C81):
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open backup device '.\Settings\a\桌面\Release\BackUp\20080311115800RemtLvFP.BAK'. Device error or device off-line. See the SQL Server error log for more details.
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE is terminating abnormally. 在 SQLDMO.BackupClass.SQLBackup(_SQLServer ServerObject)
测试机的路径在桌面:
更换路径:C:盘
总需要有个解决办法呀:路径问题,系统中的 .\ 和“系统盘”:\Documents and Settings 等价 例如:C:\Documents and Settings
private static string SpecialReplace(string path)
{
string combine = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string[] paths = combine.Split('\\');
path = path.Replace(@".\Settings", String.Format(@"{0}\{1}", paths[0], paths[1]));
return path;
}
这种测试和解决办法有点丑陋,不过基本路径是:能最快解决问题的办法是好办法,不过最好釜底抽薪,是否是微软的BUG?
System.Runtime.InteropServices.COMException (0x80040C81):
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open backup device '.\Settings\a\桌面\Release\BackUp\20080311115800RemtLvFP.BAK'. Device error or device off-line. See the SQL Server error log for more details.
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE is terminating abnormally. 在 SQLDMO.BackupClass.SQLBackup(_SQLServer ServerObject)
测试机的路径在桌面:
更换路径:C:盘
总需要有个解决办法呀:路径问题,系统中的 .\ 和“系统盘”:\Documents and Settings 等价 例如:C:\Documents and Settings
private static string SpecialReplace(string path)
{
string combine = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string[] paths = combine.Split('\\');
path = path.Replace(@".\Settings", String.Format(@"{0}\{1}", paths[0], paths[1]));
return path;
}
这种测试和解决办法有点丑陋,不过基本路径是:能最快解决问题的办法是好办法,不过最好釜底抽薪,是否是微软的BUG?