我现在使用的方法是:
使用adoquery来连接A表,然后使用adoquery的savetofile将表中的内容保存到一文件中,然后使用loadfromfile来恢复数据,我使用没有问题。
不知是否满足你的需求。

解决方案 »

  1.   

    具体说说过程!
    ADOQuery连接数据表,必须先连接到 ADOConnection,但我要联的表假设在A:盘,又如何能实现呢?
      

  2.   

    try
        with ADOQuery1 do
        begin
          Close;
          Sql.Clear;
          sql.text:=Format('BACKUP DATABASE bfwlnew TO DISK=''%s'' WITH INIT',[SaveDialog1.FileName]);//将数据库备份到用户自选的目录去。
          execsql;
    end;
      except
      on exception do
       if ADOConnection1.InTransaction then
        ADOConnection1.RollbackTrans;
       end;
       showmessage('备份成功');
    //将用户自选的数据库还原
     try
        with ADOQuery1 do
        begin
          Close;
          Sql.Clear;
          sql.add('RESTORE FILELISTONLY ');
          ss:=Format('FROM DISK=''%s''',[edit1.text]);
          Sql.Add(ss);
          Sql.Add('RESTORE DATABASE databasename');
          ss:=Format('FROM DISK=''%s''',[openDialog1.FileName]);
          sql.add(ss);
          Sql.Add('WITH MOVE ''databasename_Data'' TO ''d:\mssql7\data\testdb.mdf'', ');
          Sql.Add('MOVE ''databasename_Log'' TO ''d:\mssql7\data\testdb.ldf''');
        execsql;
       close;
       except
      on exception do
       if ADOConnection1.InTransaction then
        ADOConnection1.RollbackTrans;
       end;