Conjunto de registros: indicadores e posições absolutas (ODBC)
Este tópico se aplica às classes ODBC do MFC.
Ao navegar com um conjunto de registros, você precisa frequentemente um modo de retornar a um registro específico. O indicador e a posição absoluta de um registro fornecem esses dois métodos.
Este tópico explica:
Como usar indicadores.
Como definir o registro atual usando posições absolutas.
Indicadores em ODBC MFC
Um indicador identifica exclusivamente um registro. Quando você navega com um conjunto de registros, nem sempre é possível confiar na posição absoluta de um registro como os registros podem ser excluídos do conjunto de registros. O modo confiável de acompanhar a posição de um registro é usar seu medidor. Funções de membro de fontes de CRecordset da classe para:
Obtém o indicador do registro atual, o que pode salvá-lo em uma variável (GetBookmark).
Movendo rapidamente a um determinado registro especificando seu medidor, que você salvou a anterior em uma variável (SetBookmark).
O exemplo a seguir ilustra como usar essas funções de membro para marcar o registro atual e o retorno posterior a ela:
// 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 );
Você não precisa extrair o tipo de dados subjacente do objeto de Classe CDBVariant . Atribuir o valor com GetBookmark e retornar ao medidor com SetBookmark.
Dica
Dependendo do tipo de driver ODBC e do conjunto de registros, os medidores talvez não haja suporte.Você pode facilmente determinar se os indicadores são suportados chamando CRecordset::CanBookmark.Além disso, se os indicadores são suportadas, você deve escolher explicitamente para os implementar especificando a opção de CRecordset::useBookmarks na função de membro de CRecordset::Open .Você também deve verificar a persistência de indicadores depois de determinadas operações de conjunto de registros.Por exemplo, se você Requery um conjunto de registros, medidores talvez não seja mais válida.Chame CDatabase::GetBookmarkPersistence para verificar se você pode chamar com segurança SetBookmark.
Posições absolutas em ODBC MFC
Além dos indicadores, a classe CRecordset permite que você defina o registro atual especificando uma posição ordinal. Isso é chamado de posicionamento absoluto.
Dica
O posicionamento absoluto não está disponível em conjuntos de registros de somente avanço.Para obter mais informações sobre conjuntos de registros de somente avanço, consulte Conjunto de registros (ODBC).
Para mover o ponteiro de registro atual que usa a posição absoluta, chame CRecordset::SetAbsolutePosition. Quando você passar um valor a SetAbsolutePosition, o registro que corresponda à posição ordinal se torna o registro atual.
Dica
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 do registro subsequente será alterado.Os indicadores são o método recomendado para mover o registro atual.Para obter mais informações, consulte Indicadores em ODBC MFC.
Para obter mais informações sobre a navegação do conjunto de registros, consulte Conjunto de registros: rolando (ODBC).