【问题标题】:SQL_NEED_DATA returned on simple integerSQL_NEED_DATA 返回简单整数
【发布时间】:2017-07-17 04:02:50
【问题描述】:

所有,

我遇到了一个奇怪的情况。我修改了一个查询,添加了int 类型的第三个参数,现在尝试将整数值绑定到它。调用如下:

ret = SQLBindParameter( stmt_tableProp, 3, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &tableId, 0, &cbId );

tableId 的值为171147655

添加此函数后,对 SQLExecute() 的调用开始返回 SQL_NEED_DATA。

在表中,该列的类型为integer

我不明白这一点 - 我没有将大数据传递给查询,也没有使用 BLOB。

为什么我会得到 SQL_NEED_DATA?

如果我去掉 3 参数,一切都会再次运行。

有人可以帮忙吗?

TIA!

【问题讨论】:

  • SQLBindParameter 是否返回错误,或者,如果执行查询时发生错误,SQLBindParameter 是否返回错误?
  • @JerryJeremiah,SQLBindParameter 执行成功。是 SQLExecute() 提供 SQL_NEED_DATA。

标签: sql-server query-parameters parameterbinding


【解决方案1】:

如果 SQLBindParameter 函数的最后一个参数 (StrLen_or_IndPtr) 设置为 SQL_DATA_AT_EXEC,则会出现此行为。

您应该检查cbId 变量的值。

如果您不初始化提供的变量,似乎也会发生错误。

【讨论】:

    猜你喜欢
    • 2012-09-13
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多