我要做一个查询一个某场工控软件(是自动化AB 公司的RSVIEW软件)的数据记录文件,这个软件里的记录文件的扩展名都是 DBF ,这些 表我也不知道是DBASE的 还是VFP的,反正我用这个连接字符串就可以打开了 
connStr = "Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB=" & 数据库完整路径名 & ";SourceType=DBF;" 要操作的表很多,每个表的结构相同,字段名字都相同,我想把所有的表都查询出来然后用 union all 连接各个 select语句。 
即 select * from 表1 union all select * from 表2…… 然后  rst.Open select * from 表1 union all select * from 表2…… 
      Set datagrid.DataSource = rst 这样就与 datagrid控件绑定上显示出所有表的数据了 
但是当 “记录集.Open” 的时候,错误提示 “[Microsoft][ODBC Visual FoxPro Driver]SQL:Too many UNIONS ” 
我在网上查好像是VFP这个连接字符串的驱动只允许一次 连查10个表,那么请问如果我想做到多表合并到一起显示,得怎么做呢。 我的表有几十个,甚至可能几百个,因为那个软件的记录文件有时一天生成很多。---------------
PS:我曾经想过一下子只联合查10个表,存到rst中,然后再查10个,就是10个一组那么查询,然后往Rst 里填充,但是我发现 rst.Open 一次就不能再往里添加了,需要用必须得先关闭,但一关闭就都释放了,先前查的也没有了 。

解决方案 »

  1.   

    你说我再新建一个数据库表?!然后把所有数据都写到那个表里,对那个表进行查询?!
    嗯,也行好像,我试试请问我新建什么数据库好呢,ACCESS!?(PS:最好还有别的方法)
      

  2.   

    顶一下,要沉了没人有别的方法了么。写到另一个库里的,也有个问题,那个 DBF 表一般默认是一天生成一个表,里面有几点的什么什么记录。我每打开我这个查询软件我就得判断那些表已经写到库中了,但是有的表写完之后,可能当天还没结束,这个表里的数据就会少一些了,如果是早上就打开,那么这个表还没多少数据呢,等晚上再打开的时候这个表被判断写完了。
    而如果再家判断那又会很麻烦