注;adoquery1 連adoconnection1
    adoquery2 連adoconnection2
adoconncetion1 連要備份的數據庫kxytest
adoconnection2 連master數據庫我已將conneted 都設為true了代碼如下﹕procedure TForm1.Button2Click(Sender: TObject);
var str:string;
begin
  adoconnection1.connected:=false;
  //str:='restore database kxytest from disk ="f:\kxydata.dat" with replace';
  adoquery1.Close;
  adoquery1.SQL.Clear;
 // 'ALTER  DATABASE  DataBaseName  SET  OFFLINE  WITH  ROLLBACK  IMMEDIATE';  adoquery2.SQL.Add('alter database kxytest set offline with rollback immediate');
  adoquery2.ExecSQL;  adoquery1.SQL.Add('restore database kxytest from disk='+#39+'f:\kxydata.dat'+'with replace'+#39);
  adoquery1.ExecSQL;  adoquery2.SQL.Add('alter database kxytest set online with rollback immediate');
  adoquery2.ExecSQL;  adoconnection1.Connected:=true;end;運行卻提示﹕
cannot open database requested in login 'kxytest' login fails

解决方案 »

  1.   

    b:array[2,10] of tbutton;for i:=0 to 1 do
    for j:= 0 to 9 do
    begin
     b[i,j]:=tbutton.create(self);
    b[i,j].left:=i*100;
    b[i,j].top:= j*100;
    b[i,j].width:=80;
    b[i,j].onclick:=button1.onclick;
    end;
      

  2.   

    TMD。上面发错了看看
    1 adoconnection2的连接问题,比如权限不够
    2 或者有其他的进程在控制着kxytest
      

  3.   

    procedure TForm1.Button2Click(Sender: TObject);
    var str:string;
    begin
      //adoconnection1.connected:=false;//去掉
      //str:='restore database kxytest from disk ="f:\kxydata.dat" with replace';
      adoquery1.Close;
      adoquery1.SQL.Clear;
     // 'ALTER  DATABASE  DataBaseName  SET  OFFLINE  WITH  ROLLBACK  IMMEDIATE';  adoquery2.SQL.Add('alter database kxytest set offline with rollback immediate');
      adoquery2.ExecSQL;  adoquery1.SQL.Add('restore database kxytest from disk='+#39+'f:\kxydata.dat'+'with replace'+#39);
      adoquery1.ExecSQL;  adoquery2.SQL.Add('alter database kxytest set online with rollback immediate');
      adoquery2.ExecSQL;  //adoconnection1.Connected:=true;// 去掉end;
      

  4.   

    不知道你用的什么数据库,如果是SQL Server的话,你需要有足够的权限,然后就可以用SQL Server的绝对数据库表示方法来操作数据库,比如:select * from  SQL1.用户1.数据库1.表1
    如果是本机数据库,你直接拷贝就可以了。
      

  5.   

    kxytest 登陆用户 错误了