WEB开发网
开发学院数据库MSSQL Server C++Builder中,sqlserver在客户端调用存储过程向服... 阅读

C++Builder中,sqlserver在客户端调用存储过程向服务器端备份数据库

 2007-11-11 08:48:24 来源:WEB开发网   
核心提示:1.Create a backup database stored procedure in master database.CREATE PROCEDURE backupdb @database varchar(10), @directory varchar(100)AS backup database @da

1.Create a backup database stored procedure in master database.

CREATE PROCEDURE backupdb
  @database varchar(10),
  @directory varchar(100)
AS
  backup database @database
  to disk=@directory

2.Get path of sql server(WINDOWS平台上强大的数据库平台).

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;
  }

Tags:Builder sqlserver 客户端

编辑录入:coldstar [复制链接] [打 印]
赞助商链接