我目前有一个使用ODBC连接到sybase数据库的宏。它通过运行以下命令来建立连接:
设置conX = wrkODBC.OpenConnection("Connection1",,True,strConn)
其中strConn = "ODBC;DSN=Server_Name;APP=Daily Task;DB=db_name;UID=uname;PWD=pwd;“
我遇到的问题是,此连接对某些Server_Name有效,但对其他Server_Name无效。当它不工作时,我得到一个错误"3146 -ODBC--调用失败“。
我不明白的是它是从哪里获取服务器详细信息的。因此,例如,当使用embarcadero快速连接到sybase数据库时,它将使用sql.ini文件根据server_name获取服务器连接详细信息。
我已经检查过了,我测试的所有Sybase服务器都在sql.ini文件中,并且我的环境变量指向正确的sybase版本。我检查过ODBC,它只提取了一个SQL Server驱动程序。
有人能解释一下ODBC是如何获取服务器名连接细节的吗?我不明白为什么它适用于某些服务器名称,而不适用于其他服务器名称(仅供参考,我已经测试了uname,并且pwd很快,以确保它是正确的)。
任何信息都将不胜感激。
发布于 2013-06-28 18:30:16
所以,问题是我在控制面板下查看我的odbc连接。我应该提一下,我使用的是Windows7。我需要做的就是在这里更新我的ODBC连接细节:
C:/Windows/SYSWOW64/odbcad32.exe --这是针对32位的!
这里设置了一些连接,这就是为什么我可以连接到一些服务器,但不是所有服务器。
https://stackoverflow.com/questions/17294424
复制相似问题