当前位置: 代码迷 >> VFP >> delphi可以访问visual foxpro的dbf数据库吗解决方案
  详细解决方案

delphi可以访问visual foxpro的dbf数据库吗解决方案

热度:10350   发布时间:2013-02-26 00:00:00.0
delphi可以访问visual foxpro的dbf数据库吗
问大家个问题:
现在有一个现成的程序,是visual foxpro做的,数据库是dbf文件,我没有用过foxpro,开始都没找到数据库,终于看明白原来dbf就是数据库,(但这个程序好多个dbf啊!还没安装foxpro,没打开这些数据库)
现在要我做另一个程序,我是用delphi开发的,本来是想用delphi连接access,作为一个单机程序放过去。
但今天他们问我,能不能用我这个程序去访问那个foxpro的程序的数据表,从那里直接提取数据,这样就不用再次录入了。
我只知道如果是SQL,放到服务器上,多个程序可以同时访问这一个数据库。
如果是access,我就不知道能不能这样了,更何况是我不认识的dbf。
请问大侠们,delphi能访问到dbf里的数据吗,能的话,dbf是不是要放到服务器上?
如果不能,那是不是只有换成SQL才可以呢?
如果换成SQL,visual foxpro连接数据库的地方好改不?我得让visual foxpro改成访问SQL对我来说也是个难度啊!

------解决方案--------------------------------------------------------
先要搞清 VFP 的程序是如何打开这个DBF的,如果是独占打开的,那你的 DELPHI 连接 DBF 时就不能运行 VFP 程序,否则无法打开。

然后就是将DBF放到服务器上也可以。但DBF所在目录必须共享,MDB也是,
DELPHI 连接 DBF 的 ADO 和 ODBC 连接串如下:
ADO:

标准连接:
"Provider=vfpoledb;Data Source=C:\DatabasePath\MyDatabase.dbc;" 

"Provider=VFPOLEDB.1;Data Source=d:\temp;Password="";Collating Sequence=MACHINE"

"Provider=VFPOLEDB.1;Data Source=\\192.168.0.1\zz;Password="";Collating Sequence=MACHINE"

"provider=VFPOLEDB.1;data source=d:\;user id=admin;password="
或老版本DBF,用JET 连接:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\192.168.0.1\zz;Extended Properties=dbaSE 5.0;Persist Security Info=False"


ODBC

dBASE:
" Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277;Dbq=c:\DatabasePath" 
注意在书写sql语句时必须指定文件名(如"Select Name, Address From Clients.dbf").
Visual Foxpro(有数据库容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBC;SourceDB=C:\DatabasePath\MyDatabase.dbc;Exclusive=No"
Visual Foxpro(无数据库容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBF;SourceDB=C:\DbfPath\MyDdbf.dbf;Exclusive=No" 

Driver={Microsoft Visual FoxproDriver};
SourceType=DBF;SourceDB=\\192.168.0.1\temp;
Exclusive=No;Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO"
数据库表
Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\myvfpdb.dbc;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO;
自由表
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:\myvfpdbfolder;Exclusive=No;Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;
------解决方案--------------------------------------------------------
DELPHI可以访问,前提是安装 的VFP的OLEDB,以兼容不同格式的DBF,用ADOTABLE、ADOQUERY连接
------解决方案--------------------------------------------------------
http://www.microsoft.com/downloads/details.aspx?familyid=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang=en
下载VFP9 OLEDB
  相关解决方案