CRecordset::Move
Mueve el indicador de registro actual en el conjunto de registros, hacia delante o hacia atrás.
virtual void Move(
long nRows,
WORD wFetchType = SQL_FETCH_RELATIVE
);
Parámetros
nRows
El número de filas a avanzar o atrasadas.Los valores positivos desplazan hacia delante, hacia el final del conjunto de registros.Los valores negativos mueven hacia atrás, hacia el principio.wFetchType
Determina el conjunto de filas que Mover capturará.Para obtener detalles, vea las notas.
Comentarios
Si se pasa un valor de 0 para nRows, Mover actualiza el registro actual; Mover finalizará cualquier AddNew o modo actual de Editar , y restaure el valor del registro actual antes de que AddNew o Editar se denomina.
[!NOTA]
Al desplazarse a través de un conjunto de registros, no puede omitir los registros eliminados.Vea CRecordset::IsDeleted para obtener más información.Al abrir CRecordset con la opción establecida de skipDeletedRecords , Mover aserciones si el parámetro de nRows es 0.Este comportamiento evita la actualización de las filas que son eliminadas por otras aplicaciones cliente que usan los mismos datos.Vea el parámetro de dwOption en Abrir para obtener una descripción de skipDeletedRecords.
Mover coloca el conjunto de registros de conjuntos de filas.Según los valores para nRows y wFetchType, Mover obtiene el conjunto de filas adecuado y crea el primer registro de ese conjunto de filas el registro actual.Si no está implementada la obtención masiva de filas, el tamaño del conjunto de filas es siempre 1.Al recuperar un conjunto de filas, Mover llama directamente la función miembro de CheckRowsetError para controlar cualquier error resultando de búsqueda.
Dependiendo de los valores que pasa, Mover equivale a otras funciones miembro de CRecordset .En particular, el valor de wFetchType puede indicar una función miembro que sea más intuitiva y a menudo el método recomendado para mover el registro actual.
La tabla siguiente se enumeran los posibles valores para wFetchType, conjunto de filas que Mover captura basado en wFetchType y nRows, y cualquier función equivalente del miembro correspondiente a wFetchType.
wFetchType |
Conjunto de filas capturado |
Función equivalente del miembro |
---|---|---|
SQL_FETCH_RELATIVE (valor predeterminado) |
El conjunto de filas que comienza las filas de nRows de la primera fila del conjunto de filas actual. |
|
SQL_FETCH_NEXT |
El siguiente conjunto de filas; se omite nRows . |
|
SQL_FETCH_PRIOR |
El conjunto de filas anterior; se omite nRows . |
|
SQL_FETCH_FIRST |
El primer conjunto de filas del conjunto de registros; se omite nRows . |
|
SQL_FETCH_LAST |
El conjunto de filas completo pasado en el conjunto de registros; se omite nRows . |
|
SQL_FETCH_ABSOLUTE |
Si nRows > 0, el conjunto de filas que comienza las filas de nRows desde el comienzo del conjunto de registros.Si nRows < 0, el conjunto de filas que comienza las filas de nRows el final del conjunto de registros.Si nRows = 0, entonces una condición de (BOF) de principio-de- archivo se devuelve. |
|
SQL_FETCH_BOOKMARK |
El conjunto de filas que comienza en la fila cuyo valor de marcador corresponde a nRows. |
[!NOTA]
Para los conjuntos de registros hacia delante - solo, Mover sólo es válido con un valor de SQL_FETCH_NEXT para wFetchType.
Precaución |
---|
La llamada Mover produce una excepción si el conjunto de registros no tiene ningún registro.Para determinar si el conjunto de registros contiene algún registro, llamada IsBOF y IsEOF. |
[!NOTA]
Si se ha desplazado más allá del principio o el final del conjunto de registros (IsBOF o IsEOF devuelve cero), llame a una función de Mover producirá posiblemente CDBException.Por ejemplo, si IsEOF devuelve cero y no hace IsBOF , después MoveNext producirá una excepción, pero MovePrev no.
[!NOTA]
Si llama a Mover mientras se actualiza o se está agregando el registro actual, las actualizaciones se pierden sin advertencia.
Para obtener más información sobre la navegación por conjuntos de registros, vea los artículos conjunto de registros: El desplazamiento (ODBC) y conjunto de registros: marcadores y posiciones absolutas (ODBC).Para obtener más información sobre la obtención masiva de filas, vea el artículo conjunto de registros: Obtener registros de forma masiva (ODBC).Para obtener información relacionada, vea la función API SQLExtendedFetch de ODBC en Windows SDK.
Excepciones
Este método puede producir excepciones de CDBException* escrito y de CMemoryException*.
Ejemplo
// 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
encabezado: afxdb.h