急~~如何通过程序在客户端备份还原服务器上的数据库?(在线等。。。)
我用pb做的客户端,sql server为服务器,做了毕业设计,现在就差数据库的备份和还原了,请问如何才能在客户端备份还原服务器上的数据库呢?
明天就要演示了,绝对急~~
参考文章:
我这里有一个例子,你仔细看看
如何在客户端,通过pb程序备份sql server2000的数据库
string sql;
string path, file;
int flag = 0
file = sle_1.text
//备份数据库,sql anywhere 格式
//sql = "backup database directory "+path+" transaction log rename"
//sql = "backup database db to disk = "+file+" with init, stats, name = full backup of shipping"
st_note.text = 正在备份数据库,请稍等...
sql = exec+(+"use master"+)
execute immediate :sql ;
if sqlca.sqlcode <> 0 then
messagebox(use master,sqlca.sqlerrtext);
end if
sqlca.autocommit = true
sql = "exec sp_addumpdevice disk"+" , bk , "+" "+file+""
execute immediate : sql ;
if sqlca.sqlcode <> 0 then
messagebox(sp_addumpdevice,sqlca.sqlerrtext);
end if
sql =backup database db to bk
execute immediate : sql ;
if sqlca.sqlcode <> 0 then
messagebox(backup,sqlca.sqlerrtext);
flag = 1
end if
sql = "exec sp_dropdevice db"
execute immediate : sql ;
if sqlca.sqlcode <> 0 then
messagebox(sp_dropdevice,sqlca.sqlerrtext);
end if
sqlca.autocommit = false
sql = exec+(+"use db"+)
execute immediate :sql ;
if sqlca.sqlcode <> 0 then
messagebox(use shipping,sqlca.sqlerrtext);
end if
st_note.text =
if flag = 0 then
messagebox(数据库备份完毕,保存在服务器文件:+file)
else
messagebox(数据库备份失败,文件路径不存在或不可访问:+file)
end if
恢复备份:
//disconnect database
disconnect using sqlca;
//connect master database
sqlca.dbms = profilestring (gs_currentdir+\*.ini, "database", "dbms", "")
sqlca.database = "master"
_dbname = profilestring (gs_currentdir+\*.ini, "database", "database", "")
sqlca.servername = profilestring (gs_currentdir+\*.ini, "database", "servername", "")
sqlca.logid = profilestring (gs_currentdir+\*.ini, "database", "logid", "")
sqlca.autocommit = true
sqlca.dbparm = ""
connect using sqlca;
// profile zh_jxc
_buildsql =restore database +_dbname+ from disk= "+路径+文件名+";
execute immediate :_buildsql;
if sqlca.sqlcode = 0 then
messagebox(提示信息,恢复数据库完毕!)
else
if sqlca.sqlcode=-1 then
messagebox()
halt close
end if
end if
查找faq贴子!
http://expert.csdn.net/expert/topic/1802/1802553.xml?temp=.9618341
sql_server.autocommit=true
sql="exec master..sp_addumpdevice disk,joyback,d:\temp.bak"
execute immediate :sql;
if sql_server.sqlcode<>0 then
messagebox("add device failure",sql_server.sqlerrtext)
end if
sql="backup database "+sql_server.database+" to joyback "
if sql_server.sqlcode<>0 then
messagebox("backup failure",sql_server.sqlerrtext)
end if
sql="exec sp_dropdevice joyback "
execute immediate :sql;
sql_server.autocommit=false
我的怎么备份不了?
Posted in noname. Edit