从 VBScript 连接到 Sybase 时出错 - 内部客户端库错误
Posted
技术标签:
【中文标题】从 VBScript 连接到 Sybase 时出错 - 内部客户端库错误【英文标题】:Error when connecting to Sybase from VBScript - internal Client Library error 【发布时间】:2015-06-24 20:20:43 【问题描述】:我正在编写一个连接到 Sybase 数据库的 VBScript,从表中读取一些数据并将其存储在变量中,然后连接到 MS SQL 服务器并将数据插入到表中,其中包含之前存储的变量数据。
我不确定这是否是相关信息,但由于我只有一个用于连接到 Sybase ODBC 的 32 位驱动程序,并且由于此 VBScript 在 64 位计算机上运行,所以我通过命令行运行它但使用SysWoW64 cmd.exe 并像这样运行它:
C:\Windows\SysWOW64>cscript C:\My\Directory\MyVBScript.vbs
我无法连接到 Sybase 数据库。我最初对连接字符串本身有一些问题,但似乎已经解决了。
这是我现在收到的错误消息,但我不知道如何解决这个问题:
用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序:[SYBASE][ODBC Sybase driver][Sybase]ct_connect():用户api层:内部客户端库 错误:HAFAILOVER:试图连接到服务器
这是现在的脚本
Dim connStr, objConn
DataSource = "ICCM_PREVIEW"
ServerIP = "1.2.3.4"
Port = "1234"
DBuser = "myUser"
DBpwd = "myPassword"
DBName = "myDatabase"
Driver = "SYBASE ASE ODBC Driver"
connStr = ""
connStr = connStr &"Driver="& Driver &";"
connStr = connStr &"Data Source="& DataSource &";"
connStr = connStr &"Srvr="& ServerIP &","& Port &";"
connStr = connStr &"Database="& DBName &";"
connStr = connStr &"uid="& DBuser &";"
connStr = connStr &"pwd="& DBpwd &";"
Wscript.Echo connStr
'Define object type
Set objConn = CreateObject("ADODB.Connection")
'Open Connection
objConn.open connStr
我在这里错过了什么?
【问题讨论】:
你看这里的解决方案了吗:geekswithblogs.net/baskibv/archive/2008/01/18/118690.aspx ? 或在这里:tek-tips.com/viewthread.cfm?qid=1182044 【参考方案1】:参数“Srvr”不是有效的连接参数,需要“端口”键值对。
之前
connStr = connStr &"Srvr="& ServerIP &","& Port &";"
之后
connStr = connStr &"Server="& ServerIP & ";"
connStr = connStr &"Port="& Port &";"
摘自Microsoft's website
使用连接参数图表
以下是 DSN 以外的连接参数列表 可以提供给 ASE ODBC 驱动程序的参数
摘自Adaptive Server Enterprise ODBC Driver by Sybase用户指南
【讨论】:
非常感谢您的帮助。我已经按照您的建议进行了更改,现在我收到了另一个错误。 "连接数据源的信息不足" 我的连接字符串如下“Driver=SYBASE ASE ODBC Driver;Data Source=ICCM_PREVIEW;Server=1.2.3.4,1234;Database=myDatabase;UID=myUser;PWD=myPassword;”跨度> 我注意到端口所需的键值对也丢失了。我会更新代码。 非常感谢@WorkSmarter。不幸的是,出现了同样的错误消息。这是新的连接字符串:“Driver=SYBASE ASE ODBC Driver;Data Source=ICCM_PREVIEW;Server=1.2.3.4;Port=1234;Database=myDatabase;UID=myUser;PWD=myPassword;” @robotsushi 在驱动程序值周围添加大括号,即SYBASE ASE ODBC 驱动程序。类似于这里提供的connectionstrings.com/adaptive-server-enterprise-odbc-driver以上是关于从 VBScript 连接到 Sybase 时出错 - 内部客户端库错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 3.6 和 pymssql 连接到 Sybase 数据库