adoquery1.Connectionstring为:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=mdf;Data Source=LIN
adoquery1的build(登陆服务器,使用windows nt 集成安全设置)/////////备份//////////////////////////
procedure TForm18.BitBtn1Click(Sender: TObject);
begin
adoquery1.Close;
try
  with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.add('backup database mdf to disk=''c:\back1.bak''');
    execsql;
    end;
  showmessage('备份完成');
except
  on e:exception do
   showmessage('备份失败');
end;
end;///////////////还原///////////////////////////
procedure TForm18.BitBtn2Click(Sender: TObject);
begin
adoquery1.Close;
try
  with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.add('restore database mdf from disk=''c:\back1.bak''');
    execsql;
    end;
  showmessage('还原成功');
except
  on e:exception do
   showmessage('还原失败');
end;
end;

解决方案 »

  1.   

    CLOSE你的TADOCONNCTION对象,重建一个以SA管理员用户的身份登录的连接MASTER数据库的连接,这样就可以恢复你的数据库了。
    因为备份的时候可以直接备份,而恢复的时候你的ADOCONNECTION依然连接在你的数据库上你无法直接恢复
      

  2.   

    备份都可以直接备份的,可是启动是如果是SQL 97 还可以自动启动,但是SQL2000就只能用手了
      

  3.   

    还原:
     begin
                pgbar.Max:=100;
                pgbar.Min:=0;
                pgbar.Step:=20;
                try
                    ADOCommand1.CommandText:='use master ';
                    pgbar.StepIt;
                     pgbar.StepIt;
                    adocommand1.Execute ;
                    adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\back.bak''  with replace ';
                    pgbar.StepIt;                pgbar.StepIt;
                    pgbar.StepIt;
                    adocommand1.Execute ;
                     try
                         aDOConnection1.Connected:=true;
                     except
                        ShowMessage('无法连接指定的数据库!');
                        application.Terminate;
                     end;
                    form1.Hide;
                      if messagedlg('c:\back.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then
                         begin
                           form2.close
                      end;
                except
                   on exception do
                       if ADOConnection1.InTransaction then
                          ADOConnection1.RollbackTrans;
                end;
    end;
      

  4.   

    要kill掉所有进程
    你到数据库那边搜以下就知道了
      

  5.   

    使用master数据库的sp_who存储进程
      

  6.   

    该说的大家都说了,建议用access或其他数据库作为中间桥梁来做,通过导入导出就可以了,如果要在数据库做备份和还原,那手动好了,因为那种备份和还原只能在服务器上实现
      

  7.   

    我按huayuxing说的方法试了,可是老提示..sa登录失败,未与信任sql server连接相关联...在控制面板里也改不了,只能选择“网络登陆id的windows nt验证”我以前装的sql身份验证,选的是windows身份验证,重新装sql,选择混合模式,密码空
    可是为什么还不能改成以sa登陆啊???!!!
    再小声问insert2003一句,pgbar是什么控件,在哪个里面,我咋就找不着hongama(delphi级民工)说的“那种备份和还原”是?我想在程序中让用户备份和还原
     
      

  8.   

    在还原前,要关闭所有使用数据库的进程,kill掉所有进程