C++ Builder中,sql server在客戶端調用存儲過程向服務器端備份數據庫
2024-08-31 00:48:28
供稿:網友
 
1.create a backup database stored procedure in master database.
create procedure backupdb
  @database varchar(10),
  @directory varchar(100)
as
  backup database @database
  to [email protected]
2.get path of sql server.
ansistring __fastcall tfrmdm::getsqlserverpath(){
  ansistring result,tmp;
  tadoquery *query=new tadoquery(this);
  query->connection=adoconnection_master;
  query->close();
  query->sql->clear();
  query->sql->add("select filename from sysdatabases where name='master'");
  query->open();
  tmp=query->fieldbyname("filename")->asstring;
  result=tmp.substring(1,tmp.length()-15);
  query->free();
  return result;
}
3.call the backup database stored procedure.
  d=formatdatetime("yyyy-mm-dd hh-mm-ss",frmdm->getservertime());
  try{
     path=frmdm->getsqlserverpath()+"backup//";
     frmdm->adostoredproc1->close();
     frmdm->adostoredproc1->connection=frmdm->adoconnection_master;
     frmdm->adostoredproc1->prepared=true;
     frmdm->adostoredproc1->procedurename="backupdb;1";
     frmdm->adostoredproc1->parameters->parambyname("@database")->value = "db_name_to_backup";
     frmdm->adostoredproc1->parameters->parambyname("@directory")->value =path+"db_name_to_backup"+d;
     frmdm->adostoredproc1->execproc();
     application->messagebox("備份完成","提示",mb_ok+mb_iconinformation);
     this->close();
   }
   catch(...){
     application->messagebox("備份出錯,請重新再來","警告",mb_ok+mb_iconwarning);
     return;
   }
本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。