Hoy hablemos de algunos métodos del objeto Recordset.
1. El método AddNew crea nuevos registros que pueden actualizar el objeto Recordset.
conjunto de registros.Agregar nueva lista de campos, valores
Lista de campos Opcional. Un solo nombre, un conjunto de nombres o la posición ordinal del campo en el nuevo registro.
Los valores son opcionales. Un valor único o un conjunto de valores para un campo en el nuevo registro. Si Campos es una matriz, Valores también debe ser una matriz con el mismo número de miembros; de lo contrario, se producirá un error. El orden de los nombres de los campos debe coincidir con el orden de los valores de los campos en cada matriz.
normalmente somos
rs.añadirnuevo
rs("xx")=xx
rs("xx")=xx
rs.actualización
Tenga en cuenta que en el modo de actualización inmediata (el proveedor escribe cambios en la fuente de datos subyacente inmediatamente cuando se llama al método Update), llamar al método AddNew sin parámetros establece la propiedad EditMode en adEditAdd. El proveedor almacena en caché cualquier cambio en los valores de los campos localmente. Llame al método Update para pasar el nuevo registro a la base de datos y restablecer la propiedad EditMode a adEditNone. Si se pasan los parámetros Campos y Valores, ADO pasa inmediatamente el nuevo registro a la base de datos (sin llamar a Actualizar) y el valor de la propiedad EditMode no cambia (adEditNone).
Quizás se pregunte cuál es la diferencia entre utilizar el método AddNew de ADO en ASP y utilizar directamente la instrucción "Insertar en...". ¿Qué camino es mejor? Respuesta: El método AddNew de ADO solo encapsula la declaración "Insertar en", por lo tanto, cuando se opera con una gran cantidad de datos, el uso directo de declaraciones SQL acelerará enormemente el acceso a los datos porque reduce el tiempo de "traducción" de ADO.
2. El método de eliminación elimina el registro o grupo de registros actual.
recordset.Delete AffectRecords
AffectRecords El valor AffectEnum determina el número de registros afectados por el método Eliminar. Este valor puede ser una de las siguientes constantes.
AdAffectPredeterminado actual. Eliminar solo el registro actual.
AdAffectGroup elimina registros que cumplen con la configuración actual de la propiedad Filter. Para utilizar esta opción, la propiedad Filtro debe establecerse en una de las constantes predefinidas válidas.
adAffectAll elimina todos los registros.
adAffectAllChapters Elimina todos los registros del subconjunto.
El uso del modo de actualización inmediata provocará la eliminación inmediata de la base de datos; de lo contrario, el registro se marcará para su eliminación del caché y la eliminación real se producirá cuando se llame al método de actualización.
3. El método Actualizar guarda todos los cambios realizados en el registro actual del objeto Recordset.
conjunto de registros.Actualizar campos, valores
Los campos son opcionales. Tipo de variante, que representa un solo nombre; o matriz de tipo de variante, que representa el nombre y la posición del número de serie del campo (uno o más) que debe modificarse.
Los valores son opcionales. Tipo de variante, que representa un valor único; o matriz de tipo de variante, que representa los valores del campo (único o múltiple) en el nuevo registro.
Si desea cancelar cualquier cambio realizado en el registro actual o descartar registros recién agregados, debe llamar al método CancelUpdate.
4. Método Cancelar actualización
conjunto de registros.CancelarActualización
Utilice el método CancelUpdate para cancelar cualquier cambio en el registro actual o descartar los registros recién agregados. Los cambios en el registro actual o en los registros nuevos no se pueden deshacer después de llamar al método Update. Si se agrega un nuevo registro cuando se llama al método CancelUpdate, el registro actual antes de llamar a AddNew volverá a ser el registro actual. Si el registro actual no se ha modificado o se ha agregado un nuevo registro, llamar al método CancelUpdate generará un error.
5. El método Buscar busca en el conjunto de registros registros que cumplan con los criterios especificados. Si se cumplen los criterios, la posición del conjunto de registros se establece en el registro encontrado; de lo contrario, la posición se establece al final del conjunto de registros.
Buscar (criterios, SkipRows, dirección de búsqueda, inicio)
criterios Una cadena que contiene declaraciones que especifican nombres de columnas, operadores de comparación y valores para la búsqueda.
SkipRows Opcional, valor entero largo, cuyo valor predeterminado es cero, que especifica el desplazamiento de la fila actual o marcador de inicio para iniciar la búsqueda.
searchDirection Valor opcional de SearchDirectionEnum que especifica si la búsqueda debe comenzar en la fila actual o en la siguiente fila válida. Su valor puede ser adSearchForward o
adSearchBackward. El valor de searchDirection determina si la búsqueda finaliza al principio o al final del conjunto de registros.
start Opcional, marcador variante, utilizado como posición inicial de la búsqueda.
El criterio "Operador de comparación" puede ser ">" (mayor que), "<" (menor que), "=" (igual a), ">=" (mayor o igual que), "<=" (menor que o igual a), " <>"
(no igual a) o "me gusta" (coincidencia de patrón). Los valores de los criterios pueden ser cadenas, números de punto flotante o fechas. Los valores de cadena están delimitados por comillas simples (por ejemplo, "estado = 'WA'").
Los valores de fecha están delimitados por "#" (símbolos numéricos) (por ejemplo, "fecha_inicio > #22/7/97#").
Cabe señalar que buscar no admite múltiples campos. Pero se puede lograr usando filtros. "name='abc'"Y "city='sh'" no está permitido
6. El método Move mueve la posición del registro actual en el objeto Recordset
conjunto de registros.Mover NumRecords, Iniciar
NumRecords Una expresión entera larga con signo que especifica el número de registros que se van a mover desde la posición de registro actual.
Inicio opcional, tipo cadena o variante, utilizado para calcular marcadores. También puede ser uno de los siguientes valores:
AdBookmarkPredeterminado actual. Comience desde el registro actual.
AdBookmarkFirst comienza con el primer registro.
AdBookmarkLast comienza desde el último registro.
Las cosas a tener en cuenta son:
(1) Si el parámetro NumRecords es mayor que cero, la posición del registro actual avanzará (hacia el final del conjunto de registros). Si NumRecords es menor que cero, la posición del registro actual se mueve hacia atrás (hacia el principio del conjunto de registros).
(2) Llamar al método Move desde un objeto Recordset vacío generará un error.
(3) Si la llamada Move mueve la posición del registro actual antes del primer registro, ADO colocará el registro actual antes del primer registro del conjunto de registros (BOF es Verdadero). Intentar retroceder cuando la propiedad BOF ya es True generará un error; si la llamada Move mueve la posición del registro actual después del registro final, ADO coloca el registro actual después del registro final del conjunto de registros (EOF es True). Intentar avanzar cuando el atributo EOF ya es Verdadero generará un error.
7. Los métodos MoveFirst, MoveLast, MoveNext y MovePrevious se mueven al primer, último, siguiente o anterior registro en el objeto Recordset especificado y convierten el registro en el registro actual.
conjunto de registros.{MoverPrimero | MoverÚltimo | MoverSiguiente |
Las cosas a tener en cuenta son:
(1) Utilice el método MoveNext para mover el registro actual hacia adelante un registro (hacia la parte inferior del conjunto de registros). Si el último registro es el registro actual y se llama al método MoveNext, ADO establece el registro actual después del registro final del conjunto de registros (EOF es True). Intentar avanzar cuando el atributo EOF ya es Verdadero generará un error.
(2) Utilice el método MovePrevious para mover la posición del registro actual hacia atrás un registro (hacia la parte superior del conjunto de registros). El objeto Recordset debe admitir el movimiento del cursor hacia atrás; de lo contrario, la llamada al método generará un error. Si el primer registro es el registro actual y se llama al método MovePrevious, ADO establece el registro actual antes del primer registro del conjunto de registros (BOF es True). Cuando el atributo BOF es Verdadero, retroceder generará un error.
8. El método Clone crea un objeto Recordset duplicado que es idéntico al objeto Recordset existente. Opcionalmente, especifique que la réplica sea de solo lectura.
Establecer rstDuplicate = rstOriginal.Clone
Primera variable de objeto Duplicate que identifica el objeto Recordset duplicado que se está creando.
La variable de objeto rstOriginal identifica el objeto Recordset que se va a copiar.
Utilice el método Clonar para crear varias copias de un objeto Recordset, lo cual resulta útil si desea mantener varios registros actuales en un grupo de registros determinado. Usar el método Clone es mucho más eficiente que crear y abrir un nuevo objeto Recordset con la misma definición que la definición inicial.
Es decir
rs.open ejecutivo, conexión, 1,1
rs2.open ejecutivo, conexión, 1,1
Debería reescribirse así
rs.open ejecutivo, conexión, 1,1
rs2=rs.clone
cabe señalar que:
(1) El registro actual de la copia recién creada se establecerá como el primer registro.
(2) Cerrar el conjunto de registros original no cierra su copia, y cerrar una copia no cerrará el conjunto de registros original ni ninguna otra copia.
9. El método Close cierra el objeto abierto y cualquier objeto relacionado.
objeto.Cerrar
Las cosas a tener en cuenta son:
(1) Utilice el método Close para cerrar el objeto Recordset para liberar todos los recursos asociados del sistema. Cerrar un objeto no lo elimina de la memoria; puede cambiar la configuración de sus propiedades y
volver a abrirlo más tarde. Para eliminar completamente el objeto de la memoria, establezca la variable del objeto en Nada.
(2) Si está editando en modo de actualización inmediata, llamar al método Cerrar generará un error y primero debe llamar al método Actualizar o Cancelar Actualización.
10. Método abierto, ¿por qué decimos esto último? Debido a que los métodos de atributos anteriores no son claros, no entenderemos el parámetro CursorType.
conjunto de registros. Código abierto, ActiveConnection, CursorType, LockType, Opciones
Los objetos Recordset pueden conectarse a objetos Command a través de la propiedad Source. El parámetro Fuente puede ser un nombre de objeto de comando, un comando SQL, un nombre de tabla de datos especificado o un procedimiento almacenado. Si se omite este parámetro, el sistema utiliza la propiedad Fuente del objeto Recordset.
ActiveConnection
Recordset pueden conectarse a objetos Connection a través de la propiedad ActiveConnection. ActiveConnection aquí puede ser un objeto de conexión o una cadena de parámetros de cadena que contienen información de conexión
de la base de datos
(ConnectionString).CursorType
El parámetro CursorType del método Open del objeto Recordset indica con qué tipo de cursor se iniciarán los datos, incluidos adOpenForwardOnly, adOpenKeyset, adOpenDynamic y ad
OpenStatic, que se describen a continuación:
---------- ------- ------------------------------------------- -----
Descripción
del valor constante constante-
-------------------------------------------------- ----------
adOpenForwardOnly 0 Valor predeterminado, inicia un cursor que solo puede moverse hacia adelante (Sólo hacia adelante).
adOpenKeyset 1 inicia un cursor de tipo Conjunto de claves.
adOpenDynamic 2 inicia un cursor de tipo dinámico.
adOpenStatic 3 inicia un cursor de tipo estático.
-------------------------------------------------- -----------
Los tipos de cursor anteriores afectarán directamente a todas las propiedades y métodos del objeto Recordset. La siguiente lista explica las diferencias entre ellos.
Propiedades del conjunto de registros adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
AbsolutePage No compatible No compatible Lectura y escritura Lectura y escritura
AbsolutePosition No compatible No compatible Lectura y escritura Lectura y escritura
BOF Solo lectura Solo lectura Solo lectura
CursorType Lectura-escritura Lectura-escritura Lectura-escritura Lectura-escritura
EOF Solo lectura Lectura -only Solo lectura
Filter Leer y escribir Leer y escribir Leer y escribir Leer y escribir
LockType Leer y escribir Leer y escribir Leer y escribir Leer y escribir
PageCount No compatible No compatible Solo lectura Solo lectura
PageSize Leer y escribir Leer y escribir Leer y escribir Leer Escribir
RecordCount No compatible No compatible Sólo lectura Sólo lectura
Agregar nuevo Compatible Compatible Compatible
Compatible Cancelar lote Compatible Compatible Compatible Compatible Cancelar Actualización Compatible Compatible Compatible Compatible
Cerrar
Compatible Compatible Compatible Compatible Compatible Compatible Compatible
Eliminar Compatible Compatible Compatible Compatible Compatible Compatible Compatible Compatible Compatible Mover
No compatible Compatible Soportado Soportado Soportado
MoveFirst Soportado Soportado Soportado Soportado Soportado
MoveLast No compatible
Soportado Soportado Soportado Soporte
MoveNext Soporte Soporte Soporte Soporte Soporte MoveAnterior No es compatible Soporte Soporte Soporte
Abierto Soporte Soporte Soporte Soporte
Actualización Soporte Soporte Soporte Soporte Soporte
ActualizaciónBatch Soporte Soporte Soporte Soporte
------ ---------------------- ---------------------------- ---------
El parámetro LockType del método Open del objeto Recordset indica que el tipo de bloqueo se omite, el sistema utilizará la propiedad LockType del objeto Recordset como valor predeterminado. Los parámetros LockType incluyen adLockReadOnly, adLockPrssimistic, adLockOptimistic y adLockBatchOptimistic, etc., que se describen a continuación:
Descripción del valor constante
--------------------------- ------ --------------------------------
adLockReadOnly 1 Valor predeterminado, el objeto Recordset se inicia en lectura -solo modo y no puede ejecutar los métodos AddNew, Update y Delete
adLockPrssimistic 2 Cuando se actualiza la fuente de datos, el sistema bloqueará temporalmente las acciones de otros usuarios para mantener la coherencia de los datos.
adLockOptimistic 3 Cuando se actualiza la fuente de datos, el sistema no bloqueará las acciones de otros usuarios y otros usuarios pueden agregar, eliminar y modificar datos.
adLockBatchOptimistic 4 Cuando se actualiza la fuente de datos, otros usuarios deben cambiar el atributo CursorLocation a adUdeClientBatch para agregar, eliminar o modificar datos.
Las cosas a tener en cuenta son:
Si la fuente de datos no devuelve ningún registro, el proveedor establece las propiedades BOF y EOF en Verdadero y no define la posición del registro actual. Si el tipo de cursor lo permite, aún se pueden agregar nuevos datos al objeto Recordset vacío.