Compartilhar via


CRecordset::Move

Move o ponteiro de registro atual no conjunto de registros, direta ou para trás.

virtual void Move( 
   long nRows, 
   WORD wFetchType = SQL_FETCH_RELATIVE  
);

Parâmetros

  • nRows
    O número de linhas para mover para frente e para trás. Os valores positivos movem para frente, para o final do conjunto de registros. Os valores negativos movem para trás, para o início.

  • wFetchType
    Determina o rowset que Mover buscará. Para obter detalhes, consulte comentários.

Comentários

Se você passar um valor de 0 para nRows, Mover atualizar o registro atual; Mover terminou qualquer AddNew ou modo atual de Editar , e restaurou o valor de registro atual antes que AddNew ou Editar foram chamados.

Dica

Quando você move com um conjunto de registros, você não pode ignorar registros excluídos.Consulte CRecordset::IsDeleted para mais informações.Quando você abre CRecordset com a opção definida de skipDeletedRecords , Mover afirma se o parâmetro de nRows é 0.Esse comportamento impede a atualização das linhas que são excluídas por outros aplicativos cliente usando os mesmos dados.Consulte o parâmetro de dwOption em Abrir para obter uma descrição de skipDeletedRecords.

Mover reposiciona o conjunto de registros por rowsets. Com base nos valores para nRows e wFetchTypeMover pesquisa, o rowset apropriado e torna um registro no primeiro registro no rowset atual. Se você não tiver implementado a linha em massa que pesquisa, então o tamanho de rowset é sempre 1. Quando buscar um rowset, Mover chamar diretamente a função de membro de CheckRowsetError para manipular erros resultantes de esforço.

Dependendo dos valores, você passa Mover é equivalente a outras funções de membro de CRecordset . Em particular, o valor de wFetchType pode indicar uma função de membro que é mais intuitiva e freqüentemente o método preferido para mover o registro atual.

A tabela a seguir lista os valores possíveis para wFetchType, o rowset que Mover buscará baseado em wFetchType e em nRows, e qualquer função de membro equivalente que corresponde a wFetchType.

wFetchType

Rowset obtido

Função de membro equivalente

SQL_FETCH_RELATIVE (o valor padrão)

O rowset que inicia fileiras de nRows da primeira linha em rowset atual.

 

SQL_FETCH_NEXT

O seguinte rowset; nRows é ignorado.

MoveNext

SQL_FETCH_PRIOR

o rowset anterior; nRows é ignorado.

MovePrev

SQL_FETCH_FIRST

O primeiro rowset no conjunto de registros; nRows é ignorado.

MoveFirst

SQL_FETCH_LAST

O rowset completo o último no conjunto de registros; nRows é ignorado.

MoveLast

SQL_FETCH_ABSOLUTE

Se nRows > 0, o rowset que inicia fileiras de nRows do início do conjunto de registros. Se nRows < 0, o rowset que inicia fileiras de nRows do final do conjunto de registros. Se nRows = 0, uma condição de início -- (BOF) Arquivo é retornado em.

SetAbsolutePosition

SQL_FETCH_BOOKMARK

O rowset que começa na linha cujo valor do indexador corresponde a nRows.

SetBookmark

Dica

Para conjuntos de registros somente encaminhamentos, Mover é válido somente com um valor de SQL_FETCH_NEXT para wFetchType.

Aviso

A chamada Mover gera uma exceção se o recordset não tem nenhum registro.Para determinar se o recordset ter quaisquer registros, chame IsBOF e IsEOF.

Dica

Se você foi rolado após o início ou fim do conjunto de registros (IsBOF ou IsEOF retornam diferente de zero), a chamada uma função de Mover irá acionar possivelmente CDBException.Por exemplo, se IsEOF retorna diferente de zero e IsBOF contrário, então MoveNext irá acionar uma exceção, mas não MovePrev .

Dica

Se você chamar Mover quando o registro atual é atualizado ou adicionado, atualizações são perdidas sem aviso.

Para obter mais informações sobre navegação do conjunto de registros, consulte os artigos conjunto de registros: Rolagem (ODBC) e conjunto de registros: Indexadores e posições absolutas (ODBC). Para obter mais informações sobre a linha em massa que pesquisa, consulte o artigo conjunto de registros: Para buscar registros em massa (ODBC). Para informações relacionadas, consulte a função da API SQLExtendedFetch ODBC em Windows SDK.

Exceções

Esse método pode lançar exceções do tipo CDBException* e CMemoryException*.

Exemplo

// rs is a CRecordset or a CRecordset-derived object 

// Change the rowset size to 5
rs.SetRowsetSize(5);

// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);

// Move to the first record in the recordset
rs.MoveFirst();

// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset, 
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);

rs.MoveFirst();
rs.MoveNext();

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe CRecordset

Gráfico da hierarquia

CRecordset::MoveNext

CRecordset::MovePrev

CRecordset::MoveFirst

CRecordset::MoveLast

CRecordset::SetAbsolutePosition

CRecordset::SetBookmark

CRecordset::IsBOF

CRecordset::IsEOF

CRecordset::CheckRowsetError