逻辑文件名我现在是用如下形式写死的。有没办法用SQL-DMO获取到Data和Log的逻辑文件名。
objRestore.RelocateFiles = "[test_Data],[test_Data.MDF],[test_Log],[test_Log.LDF]";

解决方案 »

  1.   

    use 數據名
    select * from sysfiles   --獲取當前數據庫的data 和log文件
      

  2.   

    talantlee(風),首先感谢你的回复。
    不过我问的是如何用SQL-DMO获取备份文件里的Data逻辑文件名和Log的逻辑文件名。
    不是从数据库里查。
    所以你的方法是不行的。
      

  3.   

    我也很想知道,还有一个问题就是,如果一个备份文件中有完全备份+差异备份(N个)+日志备份,我如何才能通过SQLDMO获取他们的FILE?谢谢
      

  4.   

    SQL DMO - Restoring a Database
    http://www.databasejournal.com/features/mssql/article.php/10894_1479521_1
      

  5.   

    终于找到了,大家分享一下:)
    SQLDMO.SQLServerClass svr = new SQLDMO.SQLServerClass();
    svr.Connect("(local)","sa","");
    SQLDMO.Restore res=new SQLDMO.RestoreClass();
    res.Action=0;
    res.Database="assateset";
    res.Files=@"BAK";
    SQLDMO.QueryResults QRbak=res.ReadFileList(svr);
    MessageBox.Show(Convert.ToString(QRbak.GetColumnString(2,1)));//得到Log的逻辑文件名。
    MessageBox.Show(Convert.ToString(QRbak.GetColumnString(1,1)));//得到Data的逻辑文件名。
      

  6.   

    楼主,你用的是C++ 的什么版本或者是DMO的什么版本,我用vc6,结果里面没有connect方法,不知道哪一个是对的?可不可以和楼主共同学习一下,我的QQ:7341777