select getdate() into :ldt_date from clb; //取得服务器时间
ls_day = string(day(date(ldt_date)))
ls_month = string(month(date(ldt_date)))
ls_year = string(year(date(ldt_date)))
if len(ls_day) < 2 then
ls_day = '0' + ls_day
end if
if len(ls_month) < 2 then
ls_month = '0' + ls_month
end if
ls_filename = ls_year + ls_month + ls_day
ls_pathname = gl_path + "备份\" //备份目录
CreateDirectory(ls_pathname, 0)
ls_filename = ls_pathname + ls_filename+".bdt"
if fileexists(ls_filename) then
if messagebox("提示","今天已经备份过,是否覆盖今天的备份?",question!,yesno!,1) = 1 then
FileDelete(ls_filename)
ls_sql = "EXEC sp_addumpdevice 'disk', 'backup_clhsxt','"+ls_filename+"'~r~n" + &
"backup database clhsxt to backup_clhsxt~r~n" + &
"exec sp_dropdevice 'backup_clhsxt'"
EXECUTE IMMEDIATE :ls_sql;
if sqlca.sqldbcode = 0 then
messagebox('备份成功','备份的路径和文件:【'+ls_filename+'】')
else
messagebox('备份失败','请通知系统管理员或者重新备份!')
end if
end if
else
ls_sql = "EXEC sp_addumpdevice 'disk', 'backup_clhsxt','"+ls_filename+"'~r~n" + &
"backup database clhsxt to backup_clhsxt~r~n" + &
"exec sp_dropdevice 'backup_clhsxt'"
EXECUTE IMMEDIATE :ls_sql;
if sqlca.sqldbcode = 0 then
messagebox('备份成功','备份的路径和文件:【'+ls_filename+'】')
else
messagebox('备份失败','请通知系统管理员或者重新备份!')
end if
end if
end if
//还原
sqlca.autocommit = true
if messagebox('提示',"还原数据库可能会破坏原有数据~r~n在执行本操作之前请先做好备份!!!~r~n确实要还原数据库吗?",question!, yesno!, 2) = 1 then