Partilhar via


Conjunto de registros: rolagem (ODBC)

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

  1. Encaminhar um registro ou um conjunto de linhas: chame a função de membro MoveNext .

  2. Retroceder um registro ou um conjunto de linhas: chame a função de membro MovePrev .

  3. Para o primeiro registo no conjunto de registos: chame a função membro MoveFirst.

  4. Para o último registo no conjunto de registos ou para o último conjunto de linhas: chame a função membro MoveLast.

  5. N registros relativos à posição atual: chame a função membro Move.

Para testar o fim ou o início do conjunto de registros

  1. Já navegou além do último registo? Chame a função membro IsEOF.

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