
PACK,就彻底删除了(物理删除)。
这种事情我干过,只能编程解决,基本思路就是设置循环,从第一个记录
中取得几项数据(如厂名、编号等),并赋值,再根据所赋的值向下查找,找到以后说明该记录重复,就可以删除或者做
标记
,直到文件
末尾
。然后用skip命令跳到第二个记录,再这样进行一遍,直到结束。
进行这样的工作前最好进行
备份
,防止出现
错误
。再就是设置个
字段
,比如命名为cfqk(重复情况,N型),用程序进行挑选时,就可以找到重复的记录时把cfqk标为1,用第二个记录进行查找时,就能根据该字段进行判断,如果cfqk<>1就根据第二个记录向下查找,如果是1说明它本身重复,再从第三个记录查起,依次类推,就能把所有重复的记录都找出来,再用一个命令把所有cfqk是1的都删除,问题也就解决了。
如果不能设置这样的程序就回话,把
字段名
和类型告诉我,我再帮你设计。应该不难解决的。
编程思路,生成一个新的数据库,从旧的数据库中提取数据,如果记录在新数据库中存在,就不复制,如果不存在,就将记录复制到新数据库中!这样的话就没重复的数据了
假定原数据是保存在sj.dbf中,则程序如下:
use sj
copy to temp &&将原数据库内容复制到临时数据库中
zap &&清空原数据库
use temp
jlh=1
stro recc() to jls &&将原记录条数保存到变量中
do whil jlh<=jls &&依次判断在新表中是否存在重复记录
go jlh
stor code to lsbl &&将code字段的值保存在变量中
use sj
loca for code=lsbl
if found()
else
clos data
use temp
copy to lswj for recn()=jlh &&将没有找到的记录可在在临时文件中
use sj
appe from lswj &&从临时文件中追加记录
clos data
dele file lswj.dbf &&删除产生的临时文件
endi
jlh=jlh+1
use tmep
endd
clos data
dele file temp.dbf &&删除临时文件
再重新打开原数据库后,你会发现已经没重复的记录了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)