CRecordset::Move

virtual privatevoid Mover ( longa nRows, WORD wFetchType = SQL_FETCH_RELATIVE);
lançar ( CDBException, CMemoryException );

Parâmetros

nRows

O número de linhas para mover para frente ou para trás. Valores positivos movem frente, até o final do conjunto de registros. Valores negativos movem para trás, para o início.

wFetchType

Determina o conjunto de linhas que Mover será buscar. Para obter detalhes, consulte "Comentários".

Observações

Chame essa função de membro para mover o ponteiro do registro atual no conjunto de registros, frente ou para trás. Se você passar um valor de 0 para nRows, Mover atualiza o registro atual; Mover vai acabar qualquer atual AddNew ou Editar modo e restaurará o valor do registro atual antes de AddNew ou Editar foi chamado.

&Notanbsp;  Ao mover-se através de um conjunto de registros, registros excluídos não podem ser ignorados. Consulte a função de membro de IsDeleted para obter detalhes.

Mover reposiciona o conjunto de registros por conjuntos de linhas. Com base nos valores para nRows e wFetchType, Mover busca o conjunto de linhas apropriado e, em seguida, faz o primeiro registro em que conjunto de registros do registro atual. Se não tiver implementado em massa linha buscando, em seguida, o tamanho de conjunto de linhas é sempre 1. Quando buscar um conjunto de linhas, Mover diretamente chama o função de membro de CheckRowsetError para tratar quaisquer erros resultantes da busca.

Dependendo dos valores que você passar, Mover é equivalente a outro funções de membro CRecordset . Em particular, o valor de wFetchType pode indicar uma função de membro que é mais intuitiva e, muitas vezes, o método preferencial para mover o registro atual.

A tabela a seguir lista os possíveis valores para wFetchType, o conjunto de linhas que Mover será buscar com base em qualquer função de membro equivalente correspondente para wFetchType e nRowse wFetchType.

wFetchType Conjunto de linhas extraído Função de membro equivalente
SQL_FETCH_RELATIVE (o valor padrão) O conjunto de linhas iniciando nRows linhas da primeira linha no conjunto de registros atual.
SQL_FETCH_NEXT O Avançar conjunto de linhas; nRows será ignorado. MoveNext
SQL_FETCH_PRIOR O conjunto de registros anterior; nRows será ignorado. MovePrev
SQL_FETCH_FIRST O primeiro conjunto de linhas no conjunto de registros; nRows será ignorado. MoveFirst
SQL_FETCH_LAST O último conjunto de linhas completo no conjunto de registros; nRows será ignorado. MoveLast
SQL_FETCH_ABSOLUTE Se nRows gt; 0, o conjunto de linhas iniciando nRows linhas desde o início do conjunto de registros. Se nRows < 0, o conjunto de linhas iniciando nRows linha (s) do final do conjunto de registros. Se nRows = 0, então uma condição de início de arquivo (BOF) é retornada. SetAbsolutePosition
SQL_FETCH_BOOKMARK O conjunto de linhas começando na linha cujo valor do indicador corresponde ao nRows. SetBookmark

&Notanbsp;  Para conjuntos de registros somente de foward, Mover só é válido com um valor de SQL_FETCH_NEXT para wFetchType.

Cuidado   Chamar Mover lança uma exceção se o conjunto de registros não tiver nenhum registro. Para determinar se o conjunto de registros tem todos os registros, chame IsBOF e IsEOF.

Se você tiver rolada após o início ou fim do conjunto de registros (IsBOF ou IsEOF retorna diferente de zero), chamar uma Mover função possivelmente lançará um CDBException. Por exemplo, se IsEOF retorna diferente de zero e não IsBOF , em seguida, MoveNext lançará uma exceção, mas não irá MovePrev.

Se você chamar Mover enquanto o registro atual está sendo atualizado ou adicionado, as atualizações serão perdidas sem aviso.

Para obter mais informações sobre navegação do conjunto de registros, consulte os artigos Recordset: rolagem (ODBC) e Recordset: indicadores e absoluto posições (ODBC) no Guia do programador do Visual C++. Para obter mais informações sobre a linha em massa buscando, consulte o artigo Recordset: Buscar registros em massa (ODBC) no Guia do programador do Visual C++. Para obter informações relacionadas, consulte a função de API de ODBC SQLExtendedFetch in the Referência do programador ODBC SDK.

Exemplo

/ / rs é um CRecordset ou uma / / CRecordset-derivado objeto

/ / Alterar o tamanho de conjunto de linhas para 5
RS.SetRowsetSize (5);

/ / Move para o primeiro registro
/ / no conjunto de registros
RS.MoveFirst ();

/ / Move para o registro sexto
RS.Mover (5);
/ / Outras maneiras equivalentes de
/ / move para o registro de sexto:
/ / rs.Mover (6, SQL_FETCH_ABSOLUTE);
/ / rs.SetAbsolutePosition (6);
/ / Neste caso, é o sexto registo
/ / o primeiro registro no conjunto de linhas próximo,
/ / assim que a seguir também é equivalente:
/ / rs.Movimento (1, SQL_FETCH_NEXT);
/ / rs.MoveNext)

Visão geral de CRecordsetMembros de classe | Gráfico de hierarquia

Consulte tambémnbsp;CRecordset::Move&Next, CRecordset::MovePrev, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::SetAbsolutePosition, CRecordset::SetBookmark, CRecordset::IsBOF, CRecordset::IsEOF, CRecordset::CheckRowsetError

Index