今天晚上,受一同事之托,为其朋友制作一个简单的VFP小项目,其中,有一需求是这样的:
针对数据库表里面某数据表进行备份和恢复!
俺想想,小问题不可大动干戈,简单的问题莫复杂化,要不,做得太专业,同事的朋友的程序弄好了,他们的老师反而不相信其能力(估计俺的同事的朋友是个在校大学生,此君可能不学无术,这么简单的小项目都搞不定,还委托俺的同事找俺帮忙,要是俺是他的指导教师,非猛劈他不可;或者,此君乃一大美女,女生嘛,对于技术类型的方面,实在是步履维艰,俺乐意帮忙,俺经常有这嗜好!!!),因此,想出了个简单的法子来应付,此法可满足一般的数据量较小的数据表的备份与恢复,现将其拿出来,与大家共享;
如下图,有四个数据表!
上图中,带有_backup字样的为备份的数据表,其他的为数据源表,下面,俺将代码贴出来,与大家分析一下!
仅以course.dbf源表的备份与恢复做说明,其他的都一样,就不再帖出来了!
①:备份代码:
if messagebox("确定要对student表进行备份吗?",4+32,"系统提示")=6
Use student
Copy to student_backup
use
messagebox("已将student表备份至student_backup",0+64,"系统提示")
Use student_backup
browse
close all
endif
代码说明,备份的原理很简单,无非就是使用Copy to student_backup 命令将已打开的student表整个的复制成为student_backup;
②:恢复代码
if messagebox("确定要对student表进行恢复吗?",4+32,"系统提示")=6
close all
select 1
use student
zap
close all
select 1
use student_backup
Copy to array cou_array
select 2
use student
Append from array cou_array
close all
messagebox("已将student_backup数据表恢复至student表",0+64,"系统提示")
Use student
browse
close all
endif
代码说明:
先打开源表use student,然后对其进行所有数据的zap物理删除;
之后,再打开use student_backup备份表,通过Copy to array cou_array命令将里面的所有数据存储到临时数组cou_array里面;
最后,通过Append from array cou_array命令将数组里面的所有数据追加到源表student里面!