Compartilhar via


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).

Consulte também

Conceitos

Conjunto de registros (ODBC)