书签

书签是唯一标志结果集中某一行的特殊值。 结果集每一行的书签构成了书签列,它在结果集中的列号为0;《绑定结果集》章中提到的结果集处理方式对书签列同样有效。

书签的值与行的对应关系,在不同的ODBC驱动中并不相同。 因此对于用户而言,书签的值没有意义;应用程序不应该自己生成一个书签,而应该先从结果集的书签列获取指定行的书签,之后就可以用这个书签引用这一行。

使用书签的简单步骤如下:

开启书签:在要使用书签的语句句柄上调用SQLSetStmtAttr设置SQL_ATTR_USE_BOOKMARKS选项为SQL_USE_VARIABLE,注意该设置将从下一次执行查询时开始生效;

获取书签:使用《绑定结果集》章中的结果集处理方法(绑定结果集或用SQLGetData)获取指定行的书签;

设置要使用的书签:调用SQLSetStmtAttr将语句句柄的SQL_ATTR_FETCH_BOOKMARK_PTR属性置为存放书签的缓存地址,需要使用书签时ODBC驱动会从该缓存中读取;

使用书签:调用SQLFetchScroll并设置FetchOrientation 为SQL_FETCH_BOOKMARK进行基于书签的滚动操作或者在SQLBulkOperations用书签执行UPDATE / DELETE / FETCH操作。