这个问题必须有丰富ODBC编程经验的高手才行了.大字段绑定问题:SQLINTEGER dataAtExec=SQL_LEN_DATA_AT_EXEC(0);res=::SQLBindParameter(GetHstmt(), colindex, SQL_PARAM_INPUT,
SQL_C_BINARY, SQL_LONGVARBINARY, //大字段
0, //ColumnSize为0时失败
//大于0时成功
0, (SQLPOINTER)colindex, 0, &dataAtExec);上面这个绑定是网络上能找到的绑定大字段参数的全部做法了, 但在我的程序中出现问题,用SQLGetDiaRec跟踪,发现问题说 "无效的精度或刻度值",意思是说第6个参数设为0不对,超出了由数据源支持值的范围.
然而做为大字段参数的绑定,我无法事先知道字段有多大. 这里必须用0啊. 既然网上这么多例子都雷同,那参数设为0应该没事啊,难道我的数据源不对? 那应该怎么做呢?
SQL_C_BINARY, SQL_LONGVARBINARY, //大字段
0, //ColumnSize为0时失败
//大于0时成功
0, (SQLPOINTER)colindex, 0, &dataAtExec);上面这个绑定是网络上能找到的绑定大字段参数的全部做法了, 但在我的程序中出现问题,用SQLGetDiaRec跟踪,发现问题说 "无效的精度或刻度值",意思是说第6个参数设为0不对,超出了由数据源支持值的范围.
然而做为大字段参数的绑定,我无法事先知道字段有多大. 这里必须用0啊. 既然网上这么多例子都雷同,那参数设为0应该没事啊,难道我的数据源不对? 那应该怎么做呢?
我曾经遇到一个问题,后来解决了,因为我发现不同类型的数据源,其基本属性也可能是不一样的,比如SQLBindParameter对Access数据库可用,同样的代码,移植到SQL Server数据源上就不一定操作成功。