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.
Depois de abrir um conjunto de registros, você precisa acessar os registros para exibir valores, fazer cálculos, gerar relatórios e assim por diante. A rolagem permite que você passe de registro em registro dentro do seu conjunto de registros.
Este tópico explica:
Rolagem de um registro para outro
Class CRecordset fornece as Move funções de membro para rolagem dentro de um conjunto de registros. Essas funções movem o registro atual por conjuntos de linhas. Se você tiver implementado a busca de linha em massa, uma Move operação reposicionará o conjunto de registros pelo tamanho do conjunto de linhas. Se você não tiver implementado a busca de linha em massa, uma chamada para uma Move função reposicionará o conjunto de registros em um registro de cada vez. Para obter mais informações sobre a busca de linhas em massa, consulte Recordset: Buscando registros em massa (ODBC).
Observação
Ao mover-se por um conjunto de registos, os registos eliminados podem não ser ignorados. Para obter mais informações, consulte a função de membro IsDeleted .
Além das Move funções, CRecordset fornece funções de membro para verificar se você rolou além do final ou antes do início do seu conjunto de registros.
Para determinar se a rolagem é possível em seu conjunto de registros, chame a CanScroll função de membro.
Para rolar
Encaminhar um registro ou um conjunto de linhas: chame a função de membro MoveNext .
Retroceder um registro ou um conjunto de linhas: chame a função de membro MovePrev .
Para o primeiro registo no conjunto de registos: chame a função membro MoveFirst.
Para o último registo no conjunto de registos ou para o último conjunto de linhas: chame a função membro MoveLast.
N registros relativos à posição atual: chame a função membro Move.
Para testar o fim ou o início do conjunto de registros
Já navegou além do último registo? Chame a função membro IsEOF.
Você rolou para antes do primeiro registro (retrocedendo)? Chame a função membro IsBOF.
O exemplo de código a seguir usa IsBOF e IsEOF para detetar os limites de um conjunto de registros ao rolar 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( );
IsEOF Retorna um valor diferente de zero se o conjunto de registros estiver posicionado após o último registro.
IsBOF Retorna um valor diferente de zero se o conjunto de registros estiver posicionado à frente do primeiro registro (antes de todos os registros). Em ambos os casos, não há registo atual para operar. Se você chamar MovePrev quando IsBOF já é TRUE ou chamar MoveNext quando IsEOF já é TRUE, a estrutura lançará um CDBException. Você também pode usar IsBOF e IsEOF verificar se há um conjunto de registros vazio.
Para obter mais informações sobre a navegação no conjunto de registros, consulte Recordset: Bookmarks and Absolute Positions (ODBC).
Quando a rolagem é suportada
Conforme projetado originalmente, o SQL fornecia apenas rolagem para frente, mas o ODBC estende os recursos de rolagem. O nível disponível de suporte para rolagem depende dos drivers ODBC com os quais seu aplicativo trabalha, do nível de conformidade da API ODBC do driver e se a Biblioteca de Cursores ODBC está carregada na memória. Para obter mais informações, consulte ODBC e ODBC: A biblioteca de cursores ODBC.
Sugestão
Você pode controlar se a biblioteca de cursores é usada. Consulte os parâmetros bUseCursorLib e dwOptions para CDatabase::Open.
Observação
Ao contrário das classes MFC DAO, as classes ODBC MFC não fornecem um conjunto de Find funções para localizar o próximo (ou anterior) registro que atende aos critérios especificados.
Ver também
Conjunto de registros (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Conjunto de registros: Filtrando registros (ODBC)