我在备份数据库后马上恢复,这会引起错误,因为要先连接到其他数据库才能恢复数据库。在ODBC上用TQUERY可以。但用TADOConnection时,执行CLOSE后连接到其他数据库后恢复还是会出现权限错误。马上给分~~~

解决方案 »

  1.   

    用两个adoconnection, 一个用于连接数据源。
    一个用于连接 master.
    在备份/恢复的时候, 必须确保数据库是关闭的。没有任何用户在用。
    才能够成功。你把adoquery连接到adoconnection2上
    先将
    adoconnection1.connection:=false;with adoquery1 do
    begin
    active:=false;
    sql.add('uses master backup database DATANAME to DISK='+''''+'c:\H.BAK'+'''');
    EXECSQL;
    end;
    with adoquery1 do //恢复
    begin
    active:=false;
    sql.add('uses master restore database DATANAME From DISK='+''''+'c:\H.BAK'+''''+' with replace');
    EXECSQL;
    end;