我正在尝试使用SQLBindParameter准备驱动程序以通过SQLPutData输入。数据库中的字段是TEXT字段。我的功能是根据MS的示例制作的:
http://msdn.microsoft.com/en-us/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中的SQLGetInfo信息类型返回“N”。我的司机返回“Y”。如何绑定(bind)以便可以使用SQLPutData

最佳答案

您将传递NULL作为缓冲区长度,这是一个in / out参数,应为col_num参数的大小。另外,您应该为ColumnSize或DecimalDigits参数传递一个值。

http://msdn.microsoft.com/en-us/library/ms710963(VS.85).aspx

07-28 01:35
查看更多