技术文章 > C++ Builder中调用存储过程向服务器端备份数据库

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

2018-12-12 09:29

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:

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