MSSQL编程:单弄定ASA备份/恢复程序
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。备份|程序|恢复AdaptiveServerAnywhere(本文中简称ASA)是PowerBuilder(本文中简称PB)自带的数据库办理体系,可作为小型使用体系的数据库服务器。而数据库的备份/恢复是一项基础的事情,要想用短短几分钟就完成这类程序的编写,能做到吗?本文就将为人人先容一个用PB编写的ASA备份/恢复程序,只需很短的工夫,就能够体例完成并使用在以ASA作为数据情况的小型使用上。
一备份程序
先来看看备份程序部分的写法。在窗体上建一文本框sle_1,用来显现备份的文件名,并增加两个按钮:cb_1(扫瞄)、cb_2(备份)。响应的事务代码以下:
//cb_1.clicked()
stringfname,name
GetfileSaveName(保留,fname,name,“db”,数据库备份文件(*.1),*.1)
sle_1.text=fname
//cb_2.clicked()
stringmysql,bfname
bfname=trim(sle_1.text)
bfname=left(bfname,len(bfname)-2)
mysql=“BACKUPDATABASETO”+bfname+“”
executeimmediate:MysqlUSINGSQLCA;//使用SQL语句立即实行备份
ifsqlca.sqlcode=0then
messagebox(“信息提醒”,备份乐成!,information!,OK!)//给出备份乐成与否的相干信息
else
messagebox(“信息提醒”,备份失利!,information!,OK!)
endif
二恢复程序
再来看看恢单数据库程序的编写。在窗体上建一文本框sle_1,显现用来恢复的备份文件名,并增加两个按钮:cb_1(查找)、cb_2(恢复)。声明一个修正文件属性的API函数:
FUNCTIONulongSetFileAttributes(refstringlpFileName,ulongdwFileAttributes)LIBRARY“kernel32.dll”ALIASFOR“SetFileAttributesA”
响应的事务代码以下:
//cb_1.clicked()
stringfname,name
GetfileOPenName(查找,fname,name,“1”,“数据库备份文件(*.1),*.1”)
sle_1.text=fname
//cb_2.clicked()
stringmysql,bfname,gzname
ulongsxz=32,kb//sxz为文件的属性值,32暗示可读写
booleantmp
bfname=trim(sle_1.text)
bfname=left(bfname,len(bfname)-2)
//d:lgz为示例中数据库文件地点目次,tmp.db为一时的数据库文件
mysql=“RESTOREDATABASEd:lgz mp.dbFROM”+bfname+“”
executeimmediate:MysqlUSINGSQLCA;//一样是使用SQL语句来立即实行恢单数据库的事情
ifsqlca.sqlcode<>0then
messagebox(“信息提醒”,数据恢复失利!,information!,OK!)
return
endif
disconnect;//断开数据库毗连
gzname=d:lgzgz.db//包括路径的数据库文件
SetFileAttributes(gzname,sxz)//往失落只读属性
tmp=filedelete(d:lgzgz.db)//删除恢复前的数据库
iftmp=falsethen
messagebox(“信息提醒”,备份失利!,information!,OK!)
return
endif
//将一时的数据库复制到以后的数据库文件上
bfname=“d:lgz mp.db”
gzname=“d:lgzgz.db”
kb=filecopy(bfname,gzname,true)
ifkb=1then
messagebox(“信息提醒”,数据库恢复乐成!,information!,OK!)
else
messagebox(“信息提醒”,数据库复制失利!,information!,OK!)
return
endif
filedelete(d:lgz mp.db)//删除一时的数据库文件
connect;
三小结
程序备份和恢复的完成都只是挪用了SQL内置的功效来完成,使程序显得绝对简便。功效固然对照单一和复杂,却也能满意数据库的备份和恢复的事情需求,在请求不高的使用场所可为数据库办理职员勤俭大批精神。上述程序在PB9.0中调试经由过程。
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了! 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
页:
[1]