阅读文章(首页/数据库/sql server教程/)

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

[日期:2005-11-01] 来源:互联网  作者:佚名 [字体: ]

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

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

2.Get path of SQL Server.iTbulo .comYLZoM

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;
}iTbulo .comYLZoM

3.Call the backup database stored procedure.iTbulo .comYLZoM

  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;
   }iTbulo .comYLZoM




阅读:
录入:

评论 】 【 推荐 】 【 打印
上一篇:利用数据库复制技术实现数据同步更新
下一篇:关于软件权限设置的一点心得体会
相关文章      
本文评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款