使用 BIDS 从带有参数的 Informix ODBC 源中提取数据

Posted

技术标签:

【中文标题】使用 BIDS 从带有参数的 Informix ODBC 源中提取数据【英文标题】:Using BIDS to extract data from Informix ODBC source with parameters 【发布时间】:2014-10-10 19:14:18 【问题描述】:

正如标题中所说,我正在尝试使用参数从我的 Informix ODBC 源中提取数据。我有两个要传递的参数。两者都是 DateTime,我正在尝试获取当前的开始日期,例如 2014-10-10 00:00:00 和结束日期 2014-10-10 23:59:59

如果我使用普通查询进行此操作:

SELECT * FROM TABLENAME
WHERE STARTDATETIME BETWEEN '2014-10-10 00:00:00' AND '2014-10-10 23:59:59'

一切正常。但是,如果我尝试使用我设置的参数:

SELECT * FROM TABLENAME
WHERE STARTDATETIME BETWEEN ? AND ?

我收到以下错误:

Open Database Connectivity (ODBC) error occurred. state: '07001'. 
Native Error Code: -11012. [Informix][Informix ODBC Driver]Wrong number of parameters.

我觉得这与我的查询有关,但我一直在寻找,但一无所获。任何人都可以帮助我吗?谢谢!

【问题讨论】:

【参考方案1】:

当您使用参数化查询 ('?') 时,需要绑定。 您可能正在使用 ODBC API SQLBindCol 来绑定它。 查询中的参数个数(在本例中为 2) 应该与绑定 API 调用的数量相匹配。 请检查您的 ODBC 代码以确保正确完成绑定。

【讨论】:

以上是关于使用 BIDS 从带有参数的 Informix ODBC 源中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

存储过程如何在从 BIDS 调用时不返回行,但在使用相同参数时从 SSMS 调用时返回行?

在 Informix 10 中检索或删除带有 blob 的行

从 SharePoint 运行的报告没有数据消息

带有准备好的语句的 Informix 日期时间

使用 Informix 和 Dapper 向查询添加参数失败并出现语法异常

Informix:如何将单个参数中的多个值传递、使用和执行到存储过程