首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

在Delphi顶用ADO连接FoxPro数据库

2012-07-29 
在Delphi中用ADO连接FoxPro数据库VisualPro,即VFP,那个小狐狸头,在学校时拿它做数据库理论教育,但自从6.0

在Delphi中用ADO连接FoxPro数据库

VisualPro,即VFP,那个小狐狸头,在学校时拿它做数据库理论教育,但自从6.0之后就从未接触它了,听说出在有9.0,但我觉得它的时代已经过去了。例外的是,现在还发现有人用VFP写的应用,还是号称ERP的呢,难以置信吧?!为了取用VFP数据库(也就是.dbf文件)里的数据,不得已重新捡起这“老古董”。当然,我不会为了它再安装一个VFP6.0,应该可以通过ADO连接的,而且,就一个简单的数据查询,没有复杂的操作,用Delphi写个小程序即可。

开始用ADOConnection控件连接数据库,但发现,“提供程序”列表里根本没有适合VFP的驱动!转而想想创建一个ODBC Link File再在ADO里引用吧,在“ODBC数据源管理器”里倒是列出了不少VFP(或者*.dbf)有关的驱动,可惜是虚设的,当你点击它时会弹出要求下载安装的提示(-_-!):

在Delphi顶用ADO连接FoxPro数据库

      回到ADOConnection控件,试着选了“Microsoft OLE DB Provider for ODBC Drivers”,然后,“1.选择使用数据源名称”,在列表里选择“dBASE Files”;2.“输入登录服务器信息”可以忽略;“3.输入要使用的初始目录”,将存放.dbf文件的目录路径复制到其中,完整的连接串是这样的“Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Initial Catalog={DATA_PATH}”(其中{DATA_PATH}是.dbf存放路径)。点击“测试连接”居然成功了,然后试试ADOTable和ADOQuery连接其中一个文件,也成功地看到了表中的数据。但是,这并不意味着完全成功了,这只是dBASE驱动“部分兼容”早期的VFP数据库,再试试其它的.dbf文件时,你会发现产生错误了:

在Delphi顶用ADO连接FoxPro数据库

      发生“意外错误”,不必找其原因了,估计是没法解决的,因为本来就没用对驱动,还是另寻它法吧,哈哈~

      开始GOOGLE VFP的驱动,发现了一标题为“不包括在 MDAC 2.6 或更高版本的 visual FoxPro ODBC驱动程序”(这是机器翻译的)的文章,看标题就知道VFP驱动真是很有年份了!因为现在至少是用MDAC2.7了。跟着文章找到了Microsoft OLE DB Provider for Visual FoxPro 9.0,似乎没有中文版的,将就着用吧。下载安装,发现还有Sample data and program file,不错!安装完后(记得重启Delphi),发现ADOConnection控件的“提供程序”列表里多了一项“Microsoft OLE DB Provider for Visual FoxPro”,对了,要的就是它!

      迅速用这个驱动连接数并测试,发现刚才用“dBase Files”驱动连接出错的文件能正常连接了。完成的连接串是:“Provider=VFPOLEDB;Data Source={DATA_PATH};Password="";Collating Sequence=MACHINE”(其中{DATA_PATH}是.dbf存放路径)。

      用ADOTable控件取数据就简单了,直接可以先表名(也就是.dbf文件的文件名),而用ADOQuery控件查询时,则直接“SELECT * FROM dbfilename”,其中dbfilename就是.dbf文件名,可以要扩展名也,也可以不要扩展名。

      至于更复杂的操作要慢慢试了,想必跟操作数据库大同小异了。(^_^)

热点排行