Recordset: Rolagem (ODBC)
Este tópico se aplica a classes MFC ODBC.
Após abrir um conjunto de registros, você precisa para acessar os registros para exibir valores, fazer cálculos, gerar relatórios e assim por diante.Rolagem permite que mover de registro para registro dentro de seu conjunto de registros.
Este tópico explica:
Como rolar de um registro para outro em um conjunto de registros.
Sob quais circunstâncias rolagem e não há.
Rolagem de um registro para outro
Classe CRecordset fornece a Mover funções de membro para rolagem dentro de um conjunto de registros.Essas funções mover o registro atual conjuntos de linhas.Se tiver implementado em massa linha buscando, uma Mover operação reposiciona o conjunto de registros pelo tamanho do conjunto de linhas.Se você não implementou linha em massa buscando uma chamada para um Mover função reposiciona o conjunto de registros por um registro de cada vez.Para obter mais informações sobre a busca de linha em massa, consulte Recordset: buscar registros em massa (ODBC).
Observação |
---|
Quando o movimento através de um conjunto de registros, registros excluídos não poderão ser ignorados.Para obter mais informações, consulte o IsDeleted função de membro. |
Além de Mover funções, CRecordset fornece funções de membro para verificar se você percorreu após o final ou antes do início do seu conjunto de registros.
Para determinar se a rolagem é possível no seu conjunto de registros, chame o CanScroll função de membro.
Para rolar
Encaminhar um registro ou um conjunto de linhas: chame o MoveNext função de membro.
Um registro com versões anteriores ou um conjunto de linhas: chame o MovePrev função de membro.
Para o primeiro registro no conjunto de registros: chamar o MoveFirst função de membro.
Para o último registro no conjunto de registros ou o último conjunto de linhas: chame o MoveLast função de membro.
N registros em relação à posição atual: chame o Mover função de membro.
Para testar o final ou início do conjunto de registros
Percorreu além do último registro?Chamar o IsEOF função de membro.
Percorreu antes do primeiro registro (mover para trás)?Chamar o IsBOF função de membro.
O seguinte exemplo de código usa IsBOF e IsEOF para detectar os limites de um conjunto de registros durante a rolagem em qualquer direção.
// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );
if( rsCustSet.IsBOF( ) )
return;
// The recordset is empty
// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
rsCustSet.MoveNext( );
// Move to the last record
rsCustSet.MoveLast( );
// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
rsCustSet.MovePrev( );
// First record is current again
rsCustSet.MoveFirst( );
IsEOFRetorna um valor diferente de zero se o conjunto de registros é posicionado após o último registro.IsBOFRetorna um valor diferente de zero se o conjunto de registros é posicionado antes do primeiro registro (antes de todos os registros).Em qualquer caso, não há nenhum registro atual para operar em.Se você chamar MovePrev quando IsBOF já TRUE ou ligue para MoveNext quando IsEOF já TRUE, o framework lança uma CDBException.Você também pode usar IsBOF e IsEOF para verificar se um conjunto de registros vazio.
Para obter mais informações sobre navegação do conjunto de registros, consulte Recordset: indicadores e absoluto posições (ODBC).
Quando a rolagem é suportada
Conforme originalmente projetada, SQL fornecido somente frente, mas ODBC estende os recursos de rolagem.O nível de suporte para rolagem disponível depende de drivers ODBC seu aplicativo funciona com nível de conformidade de API de ODBC do driver, e se a biblioteca de Cursor ODBC é carregada na memória.Para obter mais informações, consulte ODBC e ODBC: A biblioteca de Cursor ODBC.
Dica |
---|
Você pode controlar se a biblioteca de cursor é usada.Consulte o bUseCursorLib e dwOptions parâmetros para CDatabase::Open. |
Observação |
---|
Diferentemente das classes MFC DAO, as classes MFC ODBC não fornecem um conjunto de encontrar funções para localizar o registro seguinte (ou anterior) que atende aos critérios especificados. |