这个问题必须有丰富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应该没事啊,难道我的数据源不对? 那应该怎么做呢?

解决方案 »

  1.   

    一般用ODBC API直接编程的比较少,常用的也就那么几个API。
    我曾经遇到一个问题,后来解决了,因为我发现不同类型的数据源,其基本属性也可能是不一样的,比如SQLBindParameter对Access数据库可用,同样的代码,移植到SQL Server数据源上就不一定操作成功。
      

  2.   

    Access跟SQL Server的一些数据类型支持的最大值的确不同啊,我也碰到过。