O conjunto de registros: Indicadores e posições absolutas (ODBC)
Este tópico se aplica às classes MFC ODBC.
Ao navegar por meio de um conjunto de registros, você freqüentemente precisa de uma maneira de retornar a um determinado registro. Indicador e a posição absoluta de um registro fornecem dois desses métodos.
Este tópico explica:
Como usar os marcadores.
Como definir o registro atual usando posições absolutas.
Indicadores de ODBC do MFC
Um indicador identifica exclusivamente um registro. Quando você navega por meio de um conjunto de registros, você não pode sempre depender da posição absoluta de um registro porque os registros podem ser excluídos do conjunto de registros. A maneira confiável para controlar a posição de um registro é usar o seu indicador. Classe CRecordset fornece funções de membro para:
Obtendo o indicador do registro atual, portanto, você pode salvá-lo em uma variável (GetBookmark).
Movendo rapidamente para um determinado registro especificando seu indicador que você salvou anteriormente uma variável (SetBookmark).
O exemplo a seguir ilustra como usar essas funções de membro para marcar o registro atual e retornar mais tarde:
// 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 precisará extrair o tipo de dados da CDBVariant Class objeto. Atribuir o valor com GetBookmark e retornar a esse indicador com SetBookmark.
Observação |
---|
Dependendo do driver ODBC e o tipo de recordset, marcadores podem não ser suportados. Você poderá determinar facilmente se há suporte para indicadores chamando CRecordset::CanBookmark. Além disso, se houver suporte a indicadores, você deve explicitamente escolher implementá-los, especificando a CRecordset::useBookmarks a opção do CRecordset::Open função de membro. Você também deve verificar a persistência de indicadores após determinadas operações de conjunto de registros. Por exemplo, se você Requery um conjunto de registros, marcadores podem não ser mais válidas. Chame CDatabase::GetBookmarkPersistence para verificar se, com segurança, você pode chamar SetBookmark. |
Posições absolutas no ODBC do MFC
Além de indicadores, classe CRecordset permite que você defina o registro atual, especificando a posição ordinal. Isso é chamado de posicionamento absoluto.
Observação |
---|
Posicionamento absoluto não está disponível em conjuntos de registros somente de encaminhamento. Para obter mais informações sobre conjuntos de registros somente de encaminhamento, consulte O conjunto de registros (ODBC). |
Para mover o ponteiro de registro atual usando a posição absoluta, chame CRecordset::SetAbsolutePosition. Quando você passar um valor para SetAbsolutePosition, o registro correspondente ao que se torna a posição ordinal do registro atual.
Observação |
---|
A posição absoluta de um registro é potencialmente não confiável. Se o usuário exclui os registros do conjunto de registros, altera a posição ordinal de qualquer registro subseqüente. Indicadores são o método recomendado para mover o registro atual. Para obter mais informações, consulte indicadores no ODBC do MFC. |
Para obter mais informações sobre a navegação do conjunto de registros, consulte O conjunto de registros: Rolagem (ODBC).