SQLGetData函数引用解释了API的以下一般限制:
如果驱动程序不支持SQLGetData的扩展,则该函数只能返回数字大于上一个绑定列的未绑定列的数据。此外,在一行数据中,每次调用SQLGetData时,SQLGetData参数的值必须大于或等于上一次调用中的Col_or_Param_Num值;也就是说,必须以增加列号的顺序检索数据。
ODBC实现细节文章上的SQLGetData添加了特定于Server本机客户端驱动程序的信息:
Server本机客户端ODBC驱动程序不支持使用SQLGetData以随机列顺序检索数据。使用SQLGetData处理的所有未绑定列必须具有比结果集中绑定列更高的列序号。
此列排序限制是否适用于新的和推荐的用于Server的Microsoft驱动程序
当前用于Server版本的ODBC驱动程序11和即将发布的Server版本ODBC驱动程序13 (预览)之间是否存在这种行为上的区别?
发布于 2017-08-22 13:16:47
所有当前Microsoft驱动程序都有列排序限制。
您可以通过调用SQLGetInfo ODBC函数来测试代码中的驱动程序功能。
Server的ODBC 17返回以下内容:
SQL_GETDATA_EXTENSIONS:
SQL_GD_ANY_COLUMN false
SQL_GD_ANY_ORDER falseServer的ODBC驱动程序13返回以下内容:
SQL_GETDATA_EXTENSIONS:
SQL_GD_ANY_COLUMN false
SQL_GD_ANY_ORDER falseServer本机客户端10.0返回以下内容:
SQL_GETDATA_EXTENSIONS:
SQL_GD_ANY_COLUMN false
SQL_GD_ANY_ORDER falsehttps://stackoverflow.com/questions/35093643
复制相似问题