我目前有一个使用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,以确保它是正确的)。
非常感谢任何信息。
答案 0 :(得分:0)
所以,问题是我在控制面板下查看我的odbc连接。我应该提到我在Windows 7上。我必须做的是在这里更新我的ODBC连接细节:
C:/Windows/SYSWOW64/odbcad32.exe - 这是32位!
这设置了一些连接,这就是为什么我可以连接到某些服务器而不是所有服务器。