从 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=myPas‌​sword;” @robotsushi 在驱动程序值周围添加大括号,即SYBASE ASE ODBC 驱动程序。类似于这里提供的connectionstrings.com/adaptive-server-enterprise-odbc-driver

以上是关于从 VBScript 连接到 Sybase 时出错 - 内部客户端库错误的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .net core 连接到 Sybase 数据库

如何通过 PHP 连接到 Sybase

使用 Python 3.6 和 pymssql 连接到 Sybase 数据库

如何在java中连接到sybase的优势数据库

尝试使用启用了 TLS 的连接的 python 连接到 Sybase 和 Azure SQL 服务器

从 Java 连接到 Oracle DB 时出错