极语言官方网站

数据备份————源代码

此工具用于SQL Server数据库数据的备份,避免数据丢失

以下是源代码,可直接复制到极语言编程进行编译

小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
 	判断(消息)
	为 窗口关闭{停止(0)}
	为 单击左键{如果(参数=1)启停备份}
	否则{处理窗口(窗口,消息,参数,数据)}
结束

整数 份数,数据库,库表,文件,间隔;
文本 驱动[68]="DRIVER={SQL Server};SERVER=(local);Trusted_Connection=yes; DATABASE=";
文本 名称[32],路径[64],语句[120];

小程序 窗体启动
	文件=路径+当前目录(64,路径)
	桌面.左=窗体
	读取消息
结束
引入 "lib\odbc32.lib";
小程序 初始化
	数据分配(1,0, @库表)   
	设置环境(库表, 200,3, 0)
	数据分配(2,库表,@数据库)
	驱动连接(数据库,0,驱动,-3,0,0,0,1)
结束

小程序 执行语句(整数 sql)
	数据分配(3, 数据库, @库表) 
	提交执行(库表, sql,-3)
结束

小程序 启停备份
 	如果(份数=0){
	改窗口字(启动,"停止")
	取窗口字(库名,名称,32)
	初始化
	间隔=取控件数(窗体,3,0,0)
	份数=取控件数(窗体,4,0,0)
	开启线程(@开始备份,0,间隔)}
	否则{改窗口字(启动,"开始")
	数据关闭(数据库)份数=0}
结束

小程序 开始备份(整数 秒);
	整数 时间=秒,计数=0;文本 倒计时[20]
	循环{延时(1000)
	如果(时间<秒){时间++
	格式化(倒计时,"%d秒后开始备份",秒-时间)
	改窗口字(窗体,倒计时)}
	否则{时间=0;计数++
	如果(计数>份数){计数=1
	发送消息(列表,列表删除,0,0)}
	备份数据(计数)}
	}(份数=0)
结束
  
小程序 备份数据(整数 计数)
	格式化(文件,"\%s%d.bak",名称,计数)
	发送消息(列表,列表添加,0,路径)
	格式化(语句,"BACKUP DATABASE %s TO disk='%s' with init",名称,路径)
	数据释放(3,库表)执行语句(语句)
结束;