RESTORE DataBase Tsg From Disk = '直接用字符串'
////////////////////
SQL.Add( Format('RESTORE DataBase Tsg From Disk = %s',
  QuotedStr(OpenDialog1.FileName));

解决方案 »

  1.   

    procedure Tmainfrm.Button3Click(Sender: TObject);
    begin
      DataModule1.Free;
     // DataModule1 := Nil  ;
      DataModule1.Database1.CloseDataSets;
      DataModule1.Database1.Close;
      if OpenDialog1.Execute then
      begin
        try
          with DataModule1.lsbQuery do
          begin
            Close;
            UnPrePare;
            SQL.Clear;
            SQL.Add(Format('RESTORE DataBase Tsg From Disk = %s',
      [QuotedStr(OpenDialog1.FileName)]))    ;
            Params[0].AsString := OpenDialog1.FileName;
            PrePare;
            ExecSQL;
          end;
          except
            ShowMessage('数据库恢复失败');
            Exit;
          end;
      end;不对啊,为什么呢?
      

  2.   

    Create   procedure  restore_data  @file_path   varchar(50)
    As
     Exec  Sp_addumpdevice 'disk','restor_de',@file_path
     Restore  Database  databasename  From restor_de
      

  3.   


    procedure Tmainfrm.Button3Click(Sender: TObject);
    begin
      //DataModule1.Free;
     // DataModule1 := Nil  ;
      //DataModule1.Database1.CloseDataSets;
      DataModule1.Database1.Close;
      DataModule1.Database1.Connected := False;
      if OpenDialog1.Execute then
      begin
        try
          with DataModule1.lsbQuery do
          begin
            Close;
            UnPrePare;
            SQL.Clear;
            //SQL.Add('backup database labor to disk=:disk with init ');
            SQL.Add(Format('RESTORE DataBase Tsg From Disk = %s',
      [QuotedStr(OpenDialog1.FileName)]))    ;
            //Params[0].AsString := OpenDialog1.FileName;
            PrePare;
            ExecSQL;
          end;
          except
            ShowMessage('数据库恢复失败');
            Exit;
          end;
      end;
      //DataModule1 := TDataModule1.Create(Application);
    end;
      

  4.   

    zhptj(北狼) 不会是踢我吧?
      

  5.   

    你先单独试试'RESTORE DataBase Tsg From Disk = 路径 '好不好用,
      

  6.   

    用你自已的方法能恢复,但前提是你的SQL  SERVER里没有与要恢复的数据库名相同的名称存在
      

  7.   

    xgto:你老师去了北京了(伴水),记得我给你说过了啊;
    还有小菜弟啊、flayingqq,都很少来这儿了,不过,前两天见了北狼,东北人也不多见了,你说的那个笑哥哥,我估计是受不了这儿也不见来了;
    你老师又那么忙,只好我帮你了,记住:请客,呵呵,今天下班我去找你把你那个改一下就可以了;
        DataBase1.Connected := False;
        DataBase1.Params.Clear;
        DataBase1.AliasName := 'master';
        DataBase1.DatabaseName := 'master';
        DataBase1.Params.Add('User Name=sa');
        DataBase1.Connected := True;
        Query1.DatabaseName := 'master';
      

  8.   

    http://www.csdn.net/expert/topic/612/612773.xml?temp=.1067316
    http://www.csdn.net/expert/topic/590/590872.xml?temp=.3634455
    http://www.csdn.net/expert/topic/562/562249.xml?temp=.9288141
    http://www.csdn.net/expert/topic/806/806954.xml?temp=.3521082
    http://www.csdn.net/expert/topic/810/810649.xml?temp=.938534
    http://www.csdn.net/expert/topic/742/742812.xml?temp=.1054041这是我以前参加过的贴子;
    你们可以看一看,不是叫你们叫师哥,呵呵;