当前位置: 代码迷 >> VFP >> 近400个DBF表合并,怎么写代码
  详细解决方案

近400个DBF表合并,怎么写代码

热度:8362   发布时间:2013-02-26 00:00:00.0
近400个DBF表合并,如何写代码。
有近400个DBF表,表的名称都是有规律的,形如:××_×××××××_1101-1。表示为11年01月1日的表。每

天一个有近400个呢。现在想把所有这些表合并到一个DBF表中。想通过代码实现。比如首先定位需要合并表的目

录,然后把该目录下的所有DBF表自动合并成一个DBF表。或者按照上述的表的名称,有没有什么好的办法?

请大侠们帮帮我。如果一个个表打开,再用union的话,都不知道该要弄到什么时候呢?

谢谢!

------解决方案--------------------------------------------------------
用apend from


------解决方案--------------------------------------------------------
select 先建立的空表
appe from 路径\××_×××××××_1101-1.dbf
appe from 路径\××_×××××××_1101-2.dbf
appe from 路径\××_×××××××_1101-3.dbf
....
appe from 路径\××_×××××××_1101-400.dbf

虽然有400行命令,有点长,但却容易让你理解.



------解决方案--------------------------------------------------------
根据搂主的描述,这400个dbf文件虽说是有规律,但也可认为是无规律,比如两个月的连接处分别是:1101-31和1102-1,1102-28和1103-1等等,这其中或有节假日星期天的可能没有数据。
建一个文件夹,把这400个dbf文件放入其中,用adir()函数获取该文件夹下的所有dbf文件,在建一个结构相同但要增加一个日期字段的临时文件,用循环命令把adir()函数获得的文件导入到临时表中,每导入一个,都要用文件尾部的日期部分填入到日期字段中。

------解决方案--------------------------------------------------------
SQL code
*-- 假设你的 DBF 在 d:\abc 目录中lnFiles=Adir(aFile,'d:\abc\*.dbf')Use ('d:\abc\'+aFile(1,1))Copy Structure To 合成后的表名Use 合成后的表名For lnI=1 To lnFiles    lcStr='d:\abc\'+aFile(lnI,1)    Append From '&lcStr.'EndforBrowse
  相关解决方案