在SSIS中使用OLE DB从Sybase提取数据时出错
我在SSIS(2017)中使用Advantage 11 OLE DB Provider从Sybase提取数据时遇到问题。 我可以连接到数据库,查看表列表,并且在选择表作为数据源时可以查看列。在SSIS中使用OLE DB从Sybase提取数据时出错,ssis,oledb,etl,sybase,advantage-database-server,Ssis,Oledb,Etl,Sybase,Advantage Database Server,我在SSIS(2017)中使用Advantage 11 OLE DB Provider从Sybase提取数据时遇到问题。 我可以连接到数据库,查看表列表,并且在选择表作为数据源时可以查看列。 但是,当我单击预览(或运行数据流任务)时,会出现以下错误: 提供程序无法从命令派生参数信息。 使用SetParameterInfo。(OLE DB提供程序的优势) 我没有使用任何参数,我的数据访问模式设置为“表格”或“视图”(请参见所附屏幕截图) 在项目属性中,Run64bitRuntime设置为Fals
但是,当我单击预览(或运行数据流任务)时,会出现以下错误: 提供程序无法从命令派生参数信息。 使用SetParameterInfo。(OLE DB提供程序的优势) 我没有使用任何参数,我的数据访问模式设置为“表格”或“视图”(请参见所附屏幕截图) 在项目属性中,
Run64bitRuntime
设置为False
我错过了什么?谢谢 在搜索这个问题时,我发现了一个,他们提到: 标题: “提供程序无法从命令派生参数信息。请使用SetParameterInfo”将客户端游标与OLE DB一起使用时发生 问题描述: “提供程序无法从命令派生参数信息。使用SetParameterInfo”是在将游标位置设置为与Advantage OLE DB提供程序一起使用客户端时出现的 解决方案: 这是Advantage OLE DB Provider 1.0版本中的一个已知问题,Advantage研发团队正在对此进行研究。Advantage OLE DB Provider的1.1版本应修复此问题。同时,将游标位置设置为使用服务器端游标作为解决方法。服务器端游标与Advantage数据库服务器和Advantage本地服务器一起工作
我搜索了如何将CursorLocation设置为服务器端,也许您必须在连接字符串中设置
Advantage server Type
属性。实际上,我没有使用过这种类型的连接,但您可以参考以下文章来查看一些示例:
CursorLocation
属性的Microsoft官方文章,但我真的不知道在哪里更改此属性:
更新1-OLE DB服务 尝试使用OLEDB连接管理器中的
OLEDB服务
值:
另外,请参考以下文章,尝试在connectionstring中手动更改OLEDB服务值:
更新2-其他供应商 尝试使用其他提供程序连接到Sybase,如Sybase Adaptive Server Enterprise Data Provider或ODBC,有许多链接描述整个过程:
所以我最终解决了这个问题,但不是用OLE DB。相反,我使用了Advantage.NET数据提供程序11.1版。然后在Visual Studio中,我使用了ADO.NET连接管理器,在那里我将提供程序更改为Advantage数据提供程序,这就成功了。您看到这个线程了吗@JacobH,是的,谢谢你,但是,就像我说的,我在查询中没有使用任何参数,这是从表中直接提取的。听起来你已经解决了@雅各布,一点也不,我还是会出错@哈迪,没有。只是在您的答案下方回复(由于某些原因无法在那里标记您)。感谢您的帮助。我在连接字符串中添加了Advantage Server Type属性,但没有任何帮助。不幸的是,我找不到在哪里设置光标位置,谷歌也帮不上忙。@Tamila我添加了一个更新,请查看。我想这就是我所能做的。好luck@Tamila您可以使用其他提供商从sybase导入数据检查最新更新(2)这是我们的供应商告诉我们要使用的。。我仍在使用游标,但到目前为止运气不佳。@Tamila我认为您应该更改提供程序,因为缺少advatnage oledb的文档。检查更新2部分