Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico se aplica às classes ODBC do MFC.
Ao navegar por um conjunto de registros, muitas vezes você precisa de uma maneira de retornar a um registro específico. O marcador e a posição absoluta de um registo fornecem dois desses métodos.
Este tópico explica:
Favoritos no MFC ODBC
Um marcador identifica exclusivamente um registro. Quando você navega por um conjunto de registros, nem sempre pode confiar na posição absoluta de um registro porque os registros podem ser excluídos do conjunto de registros. A maneira confiável de manter o controle da posição de um registro é usar seu marcador. A classe CRecordset fornece funções membro para:
Obter o marcador do registro atual, para que você possa salvá-lo em uma variável (GetBookmark).
Movendo-se rapidamente para um determinado registro especificando seu marcador, que você salvou anteriormente em uma variável (SetBookmark).
O exemplo a seguir ilustra como usar essas funções de membro para marcar o registro atual e depois retornar a ele:
// rs is a CRecordset or
// CRecordset-derived object
CDBVariant varRecordToReturnTo;
rs.GetBookmark( varRecordToReturnTo );
// More code in which you
// move to other records
rs.SetBookmark( varRecordToReturnTo );
Não é necessário extrair o tipo de dados subjacente do objeto CDBVariant Class . Atribua o valor com GetBookmark e retorne a esse marcador com SetBookmark.
Observação
Dependendo do driver ODBC e do tipo de conjunto de registros, os favoritos podem não ser suportados. Você pode determinar facilmente se os favoritos são suportados chamando CRecordset::CanBookmark. Além disso, se os marcadores forem suportados, deve optar por implementá-los explicitamente, especificando a opção CRecordset::useBookmarks na função membro CRecordset::Open. Você também deve verificar a persistência de marcadores após determinadas operações de conjunto de registros. Por exemplo, se você Requery for um conjunto de registros, os marcadores podem não ser mais válidos. Chame CDatabase::GetBookmarkPersistence para verificar se pode chamar SetBookmark com segurança.
Posições absolutas no MFC ODBC
Além dos marcadores, a classe CRecordset permite que você defina o registro atual especificando uma posição ordinal. Isso é chamado de posicionamento absoluto.
Observação
O posicionamento absoluto não está disponível em conjuntos de registros somente para frente. Para obter mais informações sobre conjuntos de registros de acesso sequencial, consulte Recordset (ODBC).
Para mover o ponteiro do registro atual usando a posição absoluta, chame CRecordset::SetAbsolutePosition. Quando você passa um valor para SetAbsolutePosition, o registro correspondente a essa posição ordinal torna-se o registro atual.
Observação
A posição absoluta de um registro é potencialmente não confiável. Se o usuário excluir registros do conjunto de registros, a posição ordinal de qualquer registro subsequente será alterada. Os marcadores são o método recomendado para mover o registro atual. Para obter mais informações, consulte Marcadores no MFC ODBC.
Para obter mais informações sobre a navegação do conjunto de registros, consulte Recordset: Scrolling (ODBC).