0

我目前有一个使用 ODBC 连接到 sybase 数据库的宏。它通过运行以下命令建立连接:

设置 conX = wrkODBC.OpenConnection("Connection1", , True, strConn)

其中 strConn = "ODBC;DSN=Server_Name;APP=每日任务;DB=db_name;UID=uname;PWD=pwd;"

我遇到的问题是此连接适用于某些 Server_Name,但不适用于其他服务器。当它不起作用时,我收到错误“3146 - ODBC--调用失败”。

我不明白它从哪里提取服务器详细信息。因此例如,当使用 embarcadero rapid 连接 sybase 数据库时,它会使用 sql.ini 文件根据 server_name 拉取服务器连接详细信息。

我已经检查并且我正在测试的所有 Sybase 服务器都在 sql.ini 文件中,并且我的 env 变量指向正确的 sybase 版本。我检查了 ODBC,它只选择了一个 SQL Server 驱动程序。

谁能解释一下 ODBC 如何提取服务器名称连接详细信息?我不明白为什么它适用于某些服务器名称,但不适用于其他名称(仅供参考,我已经测试了 uname 和 pwd 可以快速确保它是正确的)。

任何信息将不胜感激。

4

1 回答 1

0

所以,问题是我在控制面板下查看我的 odbc 连接。我应该提到我在 Windows 7 上。我必须在这里更新我的 ODBC 连接详细信息:

C:/Windows/SYSWOW64/odbcad32.exe --这是32位的!

这设置了一些连接,这就是为什么我可以连接到一些服务器但不能连接到所有服务器的原因。

于 2013-06-28T10:30:15.813 回答