急急急!如何用用SQL-DMO开发实现数据的备份和还原,特别是还原!

解决方案 »

  1.   

    q:=TADOQuery.Create(nil);//q为Tadoquery
          q.Connection:=ADOC;//adoc为sql数据库路径
          q.Close;
          q.SQL.Clear;
          q.SQL.Add('restore database glxt from disk = ' + ''''+IE_lj.Text+'''');
          q.ExecSQL;
          showmessage('数据库以成功恢复成功!');
          q.Close;
          q.free;
        end;出现问题:因为数据库正在使用,没有获得对数据库的排他访问权
      

  2.   

    让你看看我得问题:
     with Dmcsdemo.QueryCsDemo do
        begin
           close;
           sql.Clear;
           SQL.Add('use master');
          // SQL.Add(' EXEC sp_dboption ''test'', ''dbo use only'', ''true''') ;
           SQL.Add('restore database test');
           SQL.Add('from disk = ''e:\test''');
           SQL.Add('with recovery');
          // SQL.Add(' EXEC sp_dboption ''test'', ''dbo use only'',''false''') ;
           execsql;    end;
    我已经设置数据库为离线状态但是:出现问题:因为数据库正在使用,没有获得对数据库的排他访问权
      

  3.   

    打开SQLServer的Agent任务
    RESTORE DATABASE data1                                                          
       FROM DISK  '''+edt1.Text+'\Backup\Backup.BAK''
       WITH MOVE ''data1_Data''TO '''+edt1.Text+'\data1Data.mdf''
            MOVE ''data1_Log''  TO '''+edt1.Text+'\data1Log.ldf''
      

  4.   

    with Dmcsdemo.QueryCsDemo do
        begin
           close;
           sql.Clear;
           SQL.Add('use master');
           SQL.Add('restore database test');
           SQL.Add('from disk = ''e:\test''');
           SQL.Add('with replace, norecovery,');
           SQL.Add('move ''ps_Data'' to ''e:\data\test.mdf'',');
           sql.Add('move ''ps_log'' to '' e:\date\text.ldf''' );
           execsql;
        end;
    为什么在SQLsever中SQL语句可以正常执行,但在前台就不行了呢?
      

  5.   

    有一句话错了:应该是
    from disk = 'e:\ps.bad'
      

  6.   

    //  Backup!with ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add('backup database wyh_reservoir');
          sql.Add('to disk='+''''+Edt_Path.Text+'''');
          execsql;
        end;//restore
    with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('SHUTDOWN');
        execsql;
      end; sleep(20000);Adoconnection1.connected:=true; with ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add('restore database wyh_reservoir');
          sql.Add('from disk='+''''+Edt_Path.Text+'''');
          execsql;
        end;
      

  7.   

    var oSQLServerDMOApp : Variant;
        oSQLServer: Variant;
    begin 
    oSQLServerDMOApp := CreateOleObject('SQLDMO.Application');
        oSQLServer := CreateOleObject('SQLDMO.SQLServer');    //If oSQLServer.Status = SQLDMOSvc_Running Then
        oSQLServer.Stop ;
        sleep(10000);
        //If oSQLServer.Status = SQLDMOSvc_Paused Then  oSQLServer.Continue
       // Else
        oSQLServer.Start;
        oSQLServer.RefreshStatus ;
    end;
    它说dmo句柄无效,该怎么写啊
      

  8.   

    oSQLServerDMOApp := CreateOleObject('SQLDMO.Application');
        oSQLServer := CreateOleObject('SQLDMO.SQLServer');
    //这里加一句连接到具体的服务器上就行了。
        oSQLServer.Connect('.', 'sa', '');//.指localhost
        //If oSQLServer.Status = SQLDMOSvc_Running Then    
        oSQLServer.Stop ;