我在使用SSIS(2017)中的Advantage 11 OLE DB提供程序从Sybase提取数据时遇到问题。
我可以连接到数据库,查看表列表,并且在选择表作为数据源时可以看到列。
但是,当我单击“预览”(或运行数据流任务)时,出现此错误:
提供程序无法从命令中获取参数信息。 使用SetParameterInfo。 (优势OLE DB提供程序)
我没有使用任何参数,我的数据访问模式设置为“表”或“视图”(请参阅随附的屏幕截图)
在项目属性中,Run64bitRuntime
设置为False
。
我想念什么?谢谢!!
答案 0 :(得分:2)
在搜索此问题时,我发现了一个old official reference that is related to advantage ole db provider release 1.0 (since 2000),他们提到:
标题:
“提供程序无法从命令中派生参数信息。请使用SetParameterInfo”。 与OLE DB一起使用客户端游标时发生
问题描述:
在将CursorLocation设置为与Advantage OLE DB提供程序一起使用客户端时,会出现“提供程序无法从命令中获取参数信息。Use SetParameterInfo”的情况。
解决方案:
这是Advantage OLE DB提供程序的1.0版本中的一个已知问题,并且由Advantage R&D团队进行研究。 Advantage OLE DB提供程序的1.1版本应解决此问题。同时,将CursorLocation设置为使用服务器端游标作为解决方法。服务器端游标可与Advantage Database Server和Advantage Local Server一起使用。
我搜索了如何将CursorLocation设置到服务器端,也许您必须在连接字符串中设置Advantage Server Type
属性。确实我没有使用这种类型的连接,但是您可以参考以下文章以查看一些示例:
我还找到了一些有关CursorLocation
属性的Microsoft官方文章,但实际上我不知道在哪里更改此属性:
尝试在OLEDB连接管理器中使用OLEDB Services
值:
还尝试参考以下文章在连接字符串中手动更改OLEDB服务值:
尝试使用其他提供程序连接到Sybase,例如 Sybase Adaptive Server Enterprise数据提供程序或 ODBC ,其中有许多链接描述了整个过程:
答案 1 :(得分:0)
所以我终于解决了这个问题,但是没有使用OLE DB。相反,我使用了Advantage .NET数据提供程序11.1版。然后在Visual Studio中,我使用了ADO.NET连接管理器,在该管理器中,我将提供程序更改为Advantage Data Provider,从而达到了目的。