我正在尝试使用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