Usando indicadores
Antes de abrir o conjunto de linhas, você deve informar o provedor que você deseja usar indicadores.Para fazer isso, defina o DBPROP_BOOKMARKS propriedade true na sua propriedade definida.O provedor recupera indicadores como coluna zero, portanto você deve usar a macro especial BOOKMARK_ENTRY e CBookmark se você estiver usando um acessador estático da classe.CBookmarké uma classe de modelo onde o argumento é o comprimento em bytes do buffer de indicador.O comprimento do buffer necessário para um indicador depende do provedor.Se você estiver usando o provedor ODBC OLE DB, como mostrado no exemplo a seguir, o buffer deve ser 4 bytes.
class CProducts
{
public:
CBookmark<4> bookmark;
BEGIN_COLUMN_MAP(CProducts)
BOOKMARK_ENTRY(bookmark)
END_COLUMN_MAP()
};
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);
CTable<CAccessor<CProducts> > product;
product.Open(session, "Products", &propset);
Se você usar CDynamicAccessor, o buffer é alocado dinamicamente em tempo de execução.Nesse caso, você pode usar uma versão especializada do CBookmark para o qual você não especificar um tamanho de buffer.Use a função GetBookmark para recuperar o indicador do registro atual, como mostra este exemplo de código:
CTable<CDynamicAccessor> product;
CBookmark<> bookmark;
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);
product.Open(session, "Products", &propset);
product.MoveNext();
product.GetBookmark(&bookmark);
Para obter informações sobre o suporte a indicadores em provedores, consulte Provedor de suporte para indicadores.