从.NET应用程序建立到本地普及数据库的ODBC DSN减少连接

时间:2018-12-30 10:38:01

标签: .net odbc dsn pervasive pervasive-sql

我们正在开发.NET应用程序,该应用程序将安装在已安装Sage 50(Peachtree)会计软件的客户计算机上。我们的应用程序将使用Pervasive ODBC驱动程序连接到Sage。 通过配置DSN,我们能够使用ODBC驱动程序连接到Sage DB。 不幸的是,这要求我们的应用程序用户采取许多步骤来配置连接,我们希望避免这种情况。

我们希望使用ODBC连接到Sage DB,但避免设置DSN。 我们已经尝试通过.NET应用程序中的以下连接字符串连接到数据库:

Driver={Pervasive ODBC Engine Interface};dbq=STONEARBORLANDSCAPING;uid=XXXXXXXXX;pwd=XXXXXXXX;

尝试连接时,会触发以下错误: “错误[HY000] [普及] [ODBC客户端接口] [LNA] [普及] [ODBC引擎接口] [数据记录管理器]指定的文件名无效(错误13)\ r \ n错误[HY000] [普及] [ ODBC客户端接口] [LNA] [无处不在] [ODBC引擎接口] [数据记录管理器]

我们还试图弄乱数据库名称,但确实表明数据库名称无效,因此建立了连接。我相信我们在连接字符串中缺少指向磁盘上某个位置的参数。 在网上查找并尝试了各种选项后,我无法使它正常工作,并始终返回到“指定的文件名无效(Btrieve错误11)”错误。

不胜感激!

2 个答案:

答案 0 :(得分:0)

Btrieve错误11与连接字符串无关。它与DDF以及它们如何引用数据文件有关。我认为即使通过Pervasive Control Center访问数据库,也会出现错误11。
如果连接时出现错误11,而不是访问特定表时出现错误,则可能是无效的数据库,您需要从Sage获取新的DDF。如果使用Btrieve函数执行器打开FILE.DDF,则可以读取记录,我的猜测是系统表之一(表名以X $开头)丢失或不正确。至少应有10个条目:

MyStream

答案 1 :(得分:0)

当尝试使用Sage的非样本公司使用相同的设置进行连接时,该连接有效。