【问题标题】:Connecting to database via ODBC通过 ODBC 连接到数据库
【发布时间】:2015-01-22 10:53:55
【问题描述】:

我在使用 SQL Anywhere 12 数据库的 64 位服务器上运行 32 位软件 (Lexware)。多个客户端通过 ODBC 连接到该数据库。

在一名员工更新服务器后,一个客户端停止正常工作。 PyOdbc 提示驱动的架构与 Lexware 的架构不对应。

似乎我使用的是 64 位 ODBC 驱动程序,它不适用于 32 位 Lexware。所以我尝试使用 32 位 ODBC 驱动程序。客户端使用的是 Windows7 64 位。

  1. 我去了 32 位 ODBC 数据源
  2. 点击添加
  3. 选择“SQL Anywhere 12”-驱动程序
  4. 点击完成
  5. 然后出现错误消息:“找不到 SQL Anywhere 12 的安装例程。重新安装驱动程序。”
  6. 我点击确定。出现另一条消息。 "发现错误:在注册表中找不到组件。
  7. 然后我再次安装了整个 sybase 驱动程序。

但我得到了同样的错误。我不知道接下来要做什么。我还尝试了其他几件事。我觉得奇怪的是,以前一切正常。所有其他客户端也可以工作。只是这个没有。我需要这个来为我的公司工作。

我该如何解决这个问题?

【问题讨论】:

    标签: database odbc 32-bit pyodbc


    【解决方案1】:

    您需要安装 32 位版本的 Lexware ODBC 驱动程序。您还需要安装用于查询数据库的 32 位版本的客户端。

    您不能在一个进程中混合使用 32 位和 64 位代码。

    【讨论】:

    • 我知道。问题是我已经安装了 32 位驱动程序,但是在尝试创建新的 User-DSN 时,我总是收到错误消息:“找不到 SQL Anywhere 12 的安装例程。再次安装驱动程序。”和“发现错误:在注册表中找不到组件”
    • 听起来好像没有安装。您确定 SQL Anywhere 12 安装的是 32 位版本吗?机器说它不是。
    • 感谢您的快速回复。我从这里下载了驱动程序:scn.sap.com/docs/DOC-35857。然后我安装 64 位和 32 位版本。之后,我尝试使用 32 位 ODBC 控制台创建一个新的 User-DSN,但它不起作用。如何验证是否安装了 32 位驱动程序?
    【解决方案2】:

    我找到了解决方案。

    "HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ODBC/ODBCINST.INI/SQL Anywhere 12"

    缺少“Driver”和“Setup”字符串。我添加了 32 位 ODBC 驱动程序的路径。现在一切都恢复正常了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多