帮朋友用Delphi编写一个访问Foxpro表的程序,在开发机器上运行良好,在客户机上运行的时候,出现访问表异常。原因何在?
比如,foxpro表在 C:\AAA 目录下,表名称 TableName.dbf tbCash: TTable;
...
begin try
tbCash.DataBaseName := 'C:\AAA';
tbCash.TableName := 'TableName.dbf';
tbCash.Active := TRUE;
except
ShowMessage('Table Open Error Or File Not Exits');
end;end;客户那边运行时,出现被我异常处理的对话框。另外,我的程序是不需要设置ODBC,也不想通过BDE来访问,因为这样安装维护很麻烦,客户是比较菜的那种。
好了,谁告诉我是缺foxpro的哪些文件,定高分酬谢!!
比如,foxpro表在 C:\AAA 目录下,表名称 TableName.dbf tbCash: TTable;
...
begin try
tbCash.DataBaseName := 'C:\AAA';
tbCash.TableName := 'TableName.dbf';
tbCash.Active := TRUE;
except
ShowMessage('Table Open Error Or File Not Exits');
end;end;客户那边运行时,出现被我异常处理的对话框。另外,我的程序是不需要设置ODBC,也不想通过BDE来访问,因为这样安装维护很麻烦,客户是比较菜的那种。
好了,谁告诉我是缺foxpro的哪些文件,定高分酬谢!!
你现在用的就是bde组件呀
必须配置别名呀
解決方法看如下:http://borland.mblogger.cn/scyangyu/posts/1527.aspx
bantam.dll
idapi32.dll
iddbas32.dll
idr20009.dll
各个文件具体含义,有兴趣的去看看开发文档吧。
解决思路:
把BDE下面的文件全部拷贝到我的程序下面,运行我的程序,然后挨个删除,如果不能删除文件的,就是我的程序运行所必需的。
采用这种办法,可以不配置BDE或ODBC,比用ADO或者其他办法方便多了。当然,如果数据库提供OLEDB接口,采用ADO那是最好的选择了。
BDE访问效率是比较高的,因为Borland公司内嵌了它们的驱动,但是并不需要配置BDE,采用目录访问也是可以的,这样,你所写的程序维护与易用性就好。
在不得已(客户缘故),数据库采用关系数据库比较好,比如:SQL Server、Sybase或者其他的,桌面数据库Access是比较好的选择,因为它提供了Jet引擎。