创建 IDataAdapter 对象失败。执行 SQL 任务可能不完全支持此提供程序

问题描述 投票:0回答:2

我在执行 SQL 任务中执行了一个简单的查询 -

SELECT col1, col2
from thetable
where code = ?
order by id asc

执行 sql 任务 - ADO.NET 连接 参数“code”在SSIS中是int32,在exec sql任务的参数映射中是int32。

它在 SQL Server 中工作正常,但在 SSIS 中会导致错误 -

[执行 SQL 任务] 错误:执行查询“SELECT col1, col2 从他们...”失败并出现以下错误:“无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序。错误消息“'?'附近的语法不正确。'。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。

如何修复此错误?

c# sql sql-server ssis
2个回答
3
投票

ADO.NET 对参数使用不同的语法 (@) - 将查询参数映射到执行 SQL 任务中的变量

您使用

?
作为参数标记,它适用于 OleDb 和 ADO,但不适用于 ADO.NET。尝试将
?
替换为
@code
,然后在参数映射中将参数名称更改为 @code:

SELECT col1, col2
from thetable
where code = @code
order by id asc

enter image description here


0
投票

我收到了同样的消息,最终 IsQueryStoredProcedure 属性设置为 True。我正在调用存储过程,但是当使用“Exec MySP ...”之类的语法时,这不合适

© www.soinside.com 2019 - 2024. All rights reserved.