1

我已经设置了 QODBC 驱动程序并且能够连接到我的 QB 文件并在 VB Demo 32 中运行查询。

我正在查看此处的示例文件之一 - http://support.flexquarters.com/esupport/index.php?/Default/Knowledgebase/Article/View/506/57/examples-of-how-to-使用-qodbc-via-visual-basic

我做了这篇文章所说的 - 将所有文本复制到一个文本文件中,将其保存为“Customer.vbs”。我创建了一个名为“Kim Garland”的客户,关闭对话框,双击文件。msgbox 从未显示,并且出现此错误消息 - “[Microsoft][ODBC Driver Manager] The specified DSN contains a architecture mismatch between the Driver and Application; Code: 80004005; Source: Microsoft OLE DB Provider for ODBC Drivers”

知道这里发生了什么吗?在浏览了知识库之后,我认为这可能与 64 位与 32 位有关……但这似乎并没有让我有所了解。我确实安装了 Visual Studio,但对 VB6 应用程序不太了解,无法知道我在做什么。

编辑
顺便说一句,给出错误的行是:

oConnection.Open "DSN=Ben Test 2;OLE DB Services=-2"

我最初使用的是与我链接到的文章中完全相同的行,但这也不起作用。我使用 c:\windows\syswow64\odbcad32.exe 创建了一个名为“Ben Test 2”的 32 位 DSN。它似乎没有改变任何东西。

4

2 回答 2

1

请查看他们谈论它的 Microsoft 网站。这不是 VB 问题,而是您怀疑的 32/64 位问题。

http://social.msdn.microsoft.com/Forums/en/sqlgetstarted/thread/702f0d9b-6cb9-49cf-9953-80d059711e60

于 2012-08-21T19:57:50.207 回答
1

由于您使用的是 64 位系统,因此您的 VBS 将作为 64 位执行(默认情况下)。

QODBC 是 32 位驱动程序,可以与 32 位应用程序一起使用。64 位应用程序无法与 32 位驱动程序通信,64 位应用程序与 32 位驱动程序通信也是如此。

对于 64 位应用程序,请使用 QRemote(它是一个 64 位驱动程序驱动程序)。

解决方案 1 您可以尝试使用 QRemote 来桥接 QODBC 和您的应用程序。这是一篇关于如何使用 QRemote 的文章: http ://www.qodbc.com/qremoteconnect.htm

解决方案 2,还有另一个解决方案可以解决您的问题。请将您的 VBS 称为 32 位。请按照以下步骤操作:

1) 点击 Windows 开始

2) 点击运行,在窗口中输入“%windir%\SysWoW64\cmd.exe”

3)点击确定,然后在cmd窗口中输入“cscript vbscriptfile.vbs”

这将使您的 VBS 在 32 位模式下运行,即使您在 64 位机器上

-问候拉金德拉·德瓦尼

于 2012-08-23T06:40:58.367 回答