如何用程度在服务器建一个数据库CTS,并从一个数据库文件cts.bak中恢复数据?(数据库是MSSQLSERVER2000)

解决方案 »

  1.   

    呵呵,这么巧,给你我做得工具
    http://eastlei.xicp.net/download/ResBakDB.rar
      

  2.   

    用这样的代码结果是不行的:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    GlServerName:string; //服务器名;
    GlServerDBName:string;// 数据库名;
    GlServerUserName:string;// 数据库用户名sa;
    GlServerUserPass:string; //用户密码;
    myTmpStr:string;//ADOCONNECTIONSTRING;
    begin
      GlServerName:=trim(edit3.Text);
      GlServerDBName:='master';
      GlServerUserName:='sa';
      GlServerUserPass:='';
      myTmpStr:='Provider=SQLOLEDB.1;'+
            'Persist Security Info=False;'+
            'User ID='+GlServerUserName+';'+
            'Initial Catalog='+GlServerDBName+';'+
            'Data Source='+GlServerName+';'+
            'Connect Timeout=15;Use Procedure for Prepare=1;'+
            'Auto Translate=True;Packet Size=4096;';    try
          begin
            if ADOConnection1.connected=true then ADOConnection1.Close;
            ADOConnection1.ConnectionString:=myTmpStr;
            ADOConnection1.Open;
          end
        except
          showmessage('检查下MSSQLSERVER2000是否已安装或是否正确安装,或是否已安装了ADO');
        end;
        adoquery1.Close;
        adoquery1.SQL.Text:='create database '+trim(edit2.Text);
        adoquery1.ExecSQL;    adoquery1.Close;
        adoquery1.SQL.Text:='restore database '+trim(edit2.Text)+' from disk='''+trim(edit3.Text)+'''';
        adoquery1.ExecSQL;
        showmessage('sucess');
    end;
    如何写才能实现?
      

  3.   

    还没搞定么?!恢复数据库有个关键的问题就是:
    当前不能有用户连接到该数据库,因此,你使用上面的 ADOQuery1 来运行 SQL 是不行的。我那个工具挺好的啊,怎么不用呢?
    下面贴出源代码,不过是编译不了的,不是我想隐瞒,是使用了我自己的很多类和全局函数http://eastlei.xicp.net/download/ResBakDB_src.rar