最近做程序的时候需要用到delphi和foxpro的dbf表,想通过delphi来操作dbf表!

delphi操作foxpro的表有好多的办法,

如用datasorce连接tquery组件把查询结果显示在dbgrid表格里

这样没有办法导出查询的结果!

可是想把查询dbf表的结果给导出为dbf文件就比较麻烦了!

经过一番努力找到了一个好办法!

在foxpro中完成这些工作简直太容易了,

但很多功能必须用delphi实现。

虽然可以用foxpro做个小程序,

然后再用delphi调用,可是比较麻烦。

这就 让我想到了可以用Delphi通过调用Com组件的方式

直接执行foxpro命令来实现,代码如下:

foxPro:=CreateOleObject(‘VisualFoxPro.Application’);
foxPro.DoCmd(‘USE F:\zhuchong\练习\ckc.dbf’);

foxPro.DoCmd(‘select *form ckc.dbf where bmddm=’1221′  into table bmddm.dbf’);//导出dbf文件
foxPro.DoCmd(‘copy to F:\zhuchong\练习\student.txt delimited with tab’);//导出txt文件
foxPro.Quit;
foxPro:=  Unassigned;

上面的代码是将ckc.db文件导出到student.txt文件。
以上参考了http://www.gomoth.com/chengxusheji/3964.html

用oledb for vfp(如9.0 Microsoft OLE DB Provider for Visual FoxPro 9.0)连接,可支持vfp的大部分命令
不是oledb for odbc

oledb for vfp下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=14839

发布日期:2008.05.16
版本:1.2
语言:English 

File Name  Size  
vfpoledb.msm  829 KB
VFPOLEDBSetup.msi  1.2 MB (安装此项)

安装完oledb for vfp后,建一ado连接,选oledb for vfp,如果是数据库,连接到数据库,如果是自由表,连接到自由表所在目录,然后建一ado command或用ado连接的execute方法