开发者社区> 问答> 正文

SQLBindParameter使用C ++和SQL Native Client准备SQLPutDa

我正在尝试使用SQLBindParameter来准备驱动程序以通过输入SQLPutData。数据库中的TEXT字段是一个字段。我的功能是根据此处的MS示例制作的:http : //msdn.microsoft.com/zh-cn/library/ms713824(VS.85).aspx。

我已经设置了环境,建立了连接并成功准备了我的语句,但是当我调用SQLBindParam(使用下面的代码)时,它始终无法报告:

[Microsoft][SQL Native Client]Invalid precision value

int col_num = 1;
SQLINTEGER length = very_long_string.length( );
retcode = SQLBindParameter( StatementHandle,
            col_num,
            SQL_PARAM_INPUT,
            SQL_C_BINARY,
            SQL_LONGVARBINARY,
            NULL,
            NULL,            
            (SQLPOINTER) col_num,     
            NULL,                 
            &length );

上面依赖于使用中的驱动程序,对于中的SQL_NEED_LONG_DATA_LEN信息类型返回“ N” SQLGetInfo。我的司机返回“ Y”。如何绑定以便使用SQLPutData?

展开
收起
心有灵_夕 2019-12-28 23:43:00 1179 0
1 条回答
写回答
取消 提交回答
  • 您将传递NULL作为缓冲区长度,这是一个in / out参数,应为col_num参数的大小。另外,您应该为ColumnSize或DecimalDigits参数传递一个值。

    http://msdn.microsoft.com/zh-CN/library/ms710963(VS.85).aspx

    2019-12-28 23:43:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载