Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Antes de abrir o conjunto de linhas, você precisa informar ao provedor que deseja usar indicadores. Para fazer isso, defina a propriedade DBPROP_BOOKMARKS como true em seu conjunto de propriedades. O provedor recupera indicadores como coluna zero, portanto, você precisará usar a macro especial BOOKMARK_ENTRY e a classe CBookmark se estiver usando um acessador estático. CBookmark é uma classe de modelo em que 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 OLE DB do ODBC, conforme mostrado no exemplo a seguir, o buffer precisará ser de 4 bytes.
class CProducts
{
public:
CBookmark<4> bookmark;
BEGIN_COLUMN_MAP(CProducts)
BOOKMARK_ENTRY(bookmark)
END_COLUMN_MAP()
};
Depois, usado pelo seguinte código:
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);
CTable<CAccessor<CProducts>> product;
CSession session;
product.Open(session, "Products", &propset);
Se você usar CDynamicAccessor, o buffer será definido dinamicamente em tempo de execução. Nesse caso, você pode usar uma versão especializada de CBookmark para a qual você não especifica um tamanho de buffer. Use a função GetBookmark para recuperar o indicador do registro atual, conforme mostrado neste exemplo de código:
CTable<CDynamicAccessor> product;
CBookmark<> bookmark;
CDBPropSet propset(DBPROPSET_ROWSET);
CSession session;
propset.AddProperty(DBPROP_BOOKMARKS, true);
product.Open(session, "Products", &propset);
product.MoveNext();
product.GetBookmark(&bookmark);
Para obter informações sobre como dar suporte a indicadores em provedores, confira Suporte do provedor para indicadores.