我的公司使用Mas90软件连接到仅使用32位驱动程序的ODBC数据库。我正在尝试创建一个将连接到此数据库以更新我们网站的网页。我遇到的问题是我们使用64位计算机,浏览器似乎只想连接到64位驱动程序。 以下是我们使用的代码:
<?php
$conn = new COM("ADODB.Connection");
$conn->open("DSN=MasSystemDSN;UID=USER|COMPANY;PWD=PASS;Directory=\\server\MAS 90\MAS90;SERVER=NotTheServer;");
?>
我收到此错误:
(!)致命错误:带有消息的未捕获异常'com_exception' '来源:用于ODBC驱动程序的Microsoft OLE DB提供程序说明: [Microsoft] [ODBC驱动程序管理器]指定的DSN包含 架构驱动程序与应用程序之间的架构不匹配 第4行的C:\ wamp \ www \ Product Integration \ TestMas.php(!) com_exception:源:用于ODBC驱动程序的Microsoft OLE DB提供程序 说明:[Microsoft] [ODBC驱动程序管理器]指定的DSN 包含驱动程序和应用程序之间的体系结构不匹配 在第4行的C:\ wamp \ www \ Product Integration \ TestMas.php
我知道驻留在SysWow64的32位ODBC驱动程序管理器而不是System32的64位管理器。我已经看到很多类似的问题,其中解决方案是删除32位DSN并创建64位DSN。不幸的是,这对我来说不是一个选项,因为我的数据库没有可用于64位DSN的驱动程序。
那么有没有办法编写我的代码以便运行32位驱动程序?或者一种运行浏览器以便运行32位驱动程序的方法?还有其他想法吗?谢谢。
答案 0 :(得分:0)
在网上查找名为ODBC-ODBC Bridge的产品。它们允许64位应用程序与32位驱动程序通信,反之亦然。
答案 1 :(得分:0)
根据您的MAS版本,您可能有64位驱动程序,但您必须安装它。请参阅此文章以获取更好的指示:https://sagecity.na.sage.com/support_communities/sage100_erp/f/sage-100-technical-and-installation-discussions/84394/excel-64-bit-query。版本2013及更高版本具有64位ODBC驱动程序。
除此之外,我通常将我的.NET应用程序(或至少与MAS实际通信的组件)配置为32位应用程序。这迫使它使用32位ODBC。我知道你正在使用PHP,所以这可能不适合你。
希望有所帮助。