1

在 SSIS 包中,我使用 ADO.Net 连接与 Sybase v9 数据提供程序进行一系列更新。

该包将随机失败,并显示“身份验证违规”的错误消息,它永远不会在同一记录中。经过一番研究,我发现 Sybase 需要以下格式的 connection_authentication 字符串:

SET TEMPORARY OPTION connection_authentication='Company=CompanyName Plc;Application=AppName;Signature=000fa55157ed..etc'

我知道我的数据库的正确字符串,因为我运行了以下内容:

CALL sa_conn_properties( );

所以我知道要使用的正确字符串,但是如何将它合并到 SSIS 中。理论上它可以被称为 SQL 语句,如下所示:

EXEC SQL SET TEMPORARY OPTION connection_authentication='Company=CompanyName Plc;Application=AppName;Signature=000fa55157ed..etc'

但是当在 SQL 任务中使用时,这只会给出错误消息“无法从过程中设置连接身份验证”。理想情况下,我想将字符串合并到连接中,而不是更改每个 SQL 语句。

4

1 回答 1

1

找到了答案:

在 SSIS 中创建一个新的 ADO.Net 连接管理器。

对于提供者,选择“.Net Providers\Odbc 数据提供者”。

选择使用连接字符串的单选按钮。

输入以下格式的连接字符串(但省略了我为清楚起见添加的额外空格):

Driver={Adaptive Server Anywhere 9.0};
uid=MyName;
compress=No;
commlinks=SharedMemory,TCPIP{Host=10.10.10.10};
disablemultirowfetch=Yes;
debug=No;
integrated=No;
autostop=No;
enginename=MyServer;
initstring=SET TEMPORARY OPTION CONNECTION_AUTHENTICATION='
    Company=MyComapny;
    application=MyApplication;
    signature=000fa552

连接字符串的关键部分是添加身份验证数据的 initstring 部分。

我从以下页面找到了答案:

http://dcx.sybase.com/1201/en/dbadmin/running-s-3417964.html

于 2013-10-16T08:23:32.150 回答