作业就差这一个问题了,怎样把索引复制给同样格式的新表?
vfp吧
全部回复
仅看楼主
level 1
busterº 楼主
我把 采购表.bdf 的某些数据筛选出来存到了表 lindeping.dbf 内,代码如下:
select * from 采购表 where between(采购日期,sdate,edate) into table 临时表\lindeping
但表的索引却没有复制过去。我不想一个一个写代码做索引,太多了,可不可以直接把 采购表.bdf 内的索引全复制给 lindeping.dbf ?
是不是用COPY STRUCTURE?我写了这个代码在后面,结果显示文件正在使用。而且我查帮助文件,里面说COPY STRUCTURE是用来建立新表,这样lindeping文件不就覆盖掉了!?

2012年04月24日 06点04分 1
level 1
把采购表.DBF和采购表.CDX(索引文件)一同复制,然后重命名为lindeping.dbf
和lindepin***X, 再select * from 采购表 where between(采购日期,sdate,edate) into table lindeping 就OK了.
2012年04月24日 13点04分 2
level 1

重命名为lindeping.dbf 和lindepin.cdx
2012年04月24日 13点04分 3
level 1
busterº 楼主
不行,表的索引全被清除了,可能是作为新文件被重建了。
2012年04月24日 13点04分 4
level 1
busterº 楼主
有没办法这样做,
先按照 采购表.dbf 的索引结构建立一个空表 lindeping.dbf ,用COPY STRUCTURE来建立。
然后再运行那个select语句,存储到临时表:... into cursor TEMP 。
然后把TEMP表内容全复制给lindeping.dbf。
不过代码不会写,你有没办法写出来?
2012年04月24日 13点04分 5
level 1
打开表设计器设置一下索引
2012年04月24日 13点04分 6
level 1
你建表时设置了索引,就自动产生了一个索引文件(CDX),把这个表(DBF)和索引文件(CDX)一同复制,新表就自然有了同样的索引了,和用代码写是一样的效果的,不用这么麻烦去写代码.
2012年04月24日 14点04分 7
level 1
busterº 楼主
我试过了,不行。。
我把 采购表.dbf 从数据库移除(我是建立在数据库内的,
直接复制给lindeping会出现无法定位的错误),丢到了自由表内,也检查了索引。
然后把 采购表 CDX和DBF都复制丢到 临时表 文件夹,改名lindepin***x和lindeping.dbf,然后添加到自由表,检查了索引都在。
但运行了select语句后,打开lindeping后索引都不见了,临时表 文件夹内cdx文件也被删除掉了。

2012年04月24日 14点04分 8
level 1
busterº 楼主
而且我还试过事先把lindepin.CDX复制出来,然后再select后加了一句:
COPY FILE lindepin***X TO ('临时表\lindepin***X')
不过还是不行,貌似CDX文件没有和dbf关联起来,lindeping的索引完全就没用到CDX文件...
2012年04月24日 14点04分 9
level 1
busterº 楼主
可不可以不用纠结CDX,用编程方式把索引复制过去?
2012年04月24日 14点04分 10
1