Hoy hablemos de las propiedades del objeto Recordset.
1. Atributo Tipo de cursor
AdOpenForwardOnly: solo cursor hacia adelante, valor predeterminado. Igual que un cursor estático, excepto que solo puede desplazarse hacia adelante a través de los registros. Úselo para mejorar el rendimiento cuando solo se requiere un movimiento unidireccional en el conjunto de registros. (Como su nombre lo indica, este cursor solo puede moverse hacia adelante. Sin embargo, debido a su funcionalidad limitada, es muy eficiente cuando se usa con recursos del sistema).
AdOpenKeyset: cursor de conjunto de claves. Aunque no se puede acceder a los registros eliminados por otros usuarios desde su conjunto de registros, los cursores de conjunto de claves son similares a los cursores dinámicos, excepto que no se pueden ver los registros agregados por otros usuarios. Los datos modificados por otros usuarios aún se pueden ver. (Un cursor KeySet le permite ver los cambios realizados por otros usuarios desde su creación, pero no puede ver los registros agregados o eliminados por otros usuarios).
AdOpenDynamic: cursor dinámico. Puede ver las adiciones, cambios y eliminaciones realizadas por otros usuarios. Se permiten todos los tipos de movimientos dentro del conjunto de registros, excepto las operaciones de marcadores que no son compatibles con el proveedor. (Este tipo de cursor es potente y consume la mayor parte de los recursos del sistema. Los cursores dinámicos pueden ver todos los cambios en las colecciones de registros que guardan. Los usuarios que utilizan cursores dinámicos pueden ver las ediciones, adiciones y eliminaciones realizadas por otros usuarios. Si los proveedores de datos que Permitir que este tipo de cursor admita esta visibilidad recuperando datos de la fuente de datos a intervalos regulares sin duda requerirá muchos recursos).
AdOpenStatic: cursor estático. Una copia estática de una colección de registros que se puede utilizar para buscar datos o generar informes. Además, las adiciones, cambios o eliminaciones realizadas por otros usuarios no son visibles. (Un cursor de clase estática es solo una instantánea de los datos. Es decir, no puede ver los cambios realizados en RecordSet por otros usuarios desde su creación. Con este tipo de cursor, puede navegar hacia adelante y hacia atrás. Debido a su simplicidad, ¡Los requisitos de recursos son menores que los dinámicos!)
Nota: Una vez abierto RecordSet, no puede cambiar la propiedad CursorType. Sin embargo, si primero cierra RecordSet, cambia la propiedad CursorType y luego vuelve a abrir RecordSet, ¡aún puede cambiar efectivamente el tipo de cursor!
2. Atributo LockType En cualquier aplicación de base de datos que pueda ser modificada por varios usuarios al mismo tiempo, debe lidiar con la situación que puede ocurrir cuando varios usuarios operan en el mismo registro al mismo tiempo. Cuando esto sucede, la integridad de los datos se ve comprometida porque un usuario puede, sin saberlo, sobrescribir los cambios de otra persona al guardar los suyos. En ese momento sentirás como si no estuvieras haciendo nada. Para manejar esta situación. ADO le permite determinar el tipo de control de eventos concurrentes al actualizar un objeto RecordSet y cómo bloquear registros por parte de un usuario mientras está editando. Esto está determinado por el atributo LockType. Este atributo tiene cuatro valores:
adLockReadonly: valor predeterminado, de solo lectura. Los datos no se pueden cambiar. (Este es el valor predeterminado de RecordSet. Si configura el método de bloqueo en este valor, no podrá actualizar Recordset).
adLockPessimistic: bloqueo conservador de registros (entrada por entrada). El proveedor realiza las acciones necesarias para garantizar una edición exitosa del registro, normalmente bloqueando inmediatamente el registro en la fuente de datos tras la edición. (Si se configura con este tipo de bloqueo, el registro se bloquea y solo pueden acceder a él los usuarios que editan entre el momento en que se inicia la edición y el momento en que se envía la actualización del registro al proveedor de datos).
adLockOptimistic: bloqueo de registros abiertos (registro por registro). El proveedor utiliza bloqueo abierto, bloqueando registros solo cuando se llama al método Update. (Los registros se bloquean solo en el momento en que los datos se envían al proveedor de datos).
adlockBatchOptimistic: actualización por lotes abiertos. Se utiliza para el modo de actualización por lotes en lugar del modo de actualización inmediata. (Un RecordSet configurado en este tipo de modo de bloqueo se denominará modo de actualización por lotes de RecordSet. Puede acelerar la velocidad de actualización de RecordSet para modificar los datos, pero debido a que se actualizan varios registros al mismo tiempo, también ¡empeora los problemas relacionados con el acceso concurrente!)
3, propiedad AbsolutePage
El atributo AbsolutePage establece el número de página de la página donde se encuentra el registro actual; use el atributo PageSize para dividir el objeto Recordset en páginas lógicas. El número de registros en cada página es PageSize (excepto que la última página puede tener menos que PageSize). número de registros). Cabe señalar aquí que no todos los proveedores de datos admiten este atributo, así que utilícelo con precaución.
Igual que la propiedad AbsolutePosition, la propiedad AbsolutePage comienza con 1. Si el registro actual es la primera fila de Recordset, AbsolutePage es 1. Puede configurar la propiedad AbsolutePage para moverse a la primera fila de registros en una página específica.
4. Atributo AbsolutePosition Si necesita determinar la posición del indicador actual en el RecordSet, puede utilizar el atributo AbsolutePosition.
El valor del atributo AbsolutePosition es la posición del indicador actual en relación con la primera operación, comenzando desde 1, es decir, la AbsolutePosition de la primera operación es 1.
Tenga en cuenta que al acceder a un RecordSet, no hay garantía de que el RecordSet aparezca en el mismo orden cada vez.
Para habilitar AbsolutePosition, primero debe configurarlo para que use el cursor del cliente (puntero): rs.CursorLocation=3
5. Atributo PageCount Utilice el atributo PageCount para determinar cuántas "páginas" de datos incluye el objeto Recordset. La "página" aquí es una colección de registros de datos con un tamaño igual a la configuración de la propiedad PageSize. Incluso si el número de registros en la última página es menor que el valor de PageSize, la última página también se considera una página de. Número de páginas. Cabe señalar que no todos los proveedores de datos admiten este atributo.
6. Atributo Tamaño de página
El atributo PageSize es la clave para determinar cómo mostrar las páginas cuando ADO accede a la base de datos. Puede usarlo para determinar cuántos registros forman una "página" lógica. Establece y crea un tamaño de página que permite pasar al primer registro de otra página lógica utilizando la propiedad AbsolutePage. La propiedad PageSize se puede configurar en cualquier momento.
7. Atributo RecordCount Este también es un atributo muy utilizado e importante. A menudo utilizamos el atributo RecordCount para averiguar cuántos registros contiene un objeto Recordset. Utilice la propiedad RecordCount para determinar el número de registros en un objeto Recordset. Esta propiedad devuelve –1 cuando ADO no puede determinar el número de registros o si el proveedor o el tipo de cursor no admite RecordCount. Leer la propiedad RecordCount en un Recordset cerrado generará un error. El tipo de cursor del objeto Recordset afecta si se puede determinar el número de registros. La propiedad RecordCount devuelve -1 para cursores de solo avance, el recuento real para cursores estáticos o de conjunto de claves, y -1 o el recuento real para cursores dinámicos, según la fuente de datos.
8. Atributos BOF y EOF Generalmente escribimos código en el programa ASP para verificar los atributos BOF y EOF, para conocer la ubicación del RecordSet al que apunta actualmente el indicador. Usando los atributos BOF y EOF, podemos saber si hay un. El objeto Recordset contiene registros o sabe si la fila de registros movida ha excedido el rango del objeto Recordset.
Si la posición del registro actual está antes de la primera fila de un objeto Recordset, la propiedad BOF devuelve verdadero; de lo contrario, devuelve falso.
Si la posición del registro actual está después de la última fila de un objeto Recordset, la propiedad EOF devuelve verdadero; de lo contrario, devuelve falso.
(Tanto BOF como EOF son Verdaderos, lo que indica que no hay registros en RecordSet).
9. El atributo Filter especifica las condiciones de filtrado para los datos en Recordset. Utilice el atributo Filter para bloquear selectivamente registros en el objeto Recordset filtrado. se convertirá en el cursor actual.
Esto afectará a otras propiedades basadas en el valor de retorno del cursor actual, como AbsolutePosition, AbsolutePage, RecordCount y PageCount, porque establecer la propiedad Filter en un valor
específico
mueve el registro actual al primer registro que satisface el nuevo valor.
Creo que este atributo es bastante útil. A veces, después de abrir el conjunto de registros y hacer ciertos juicios, queremos filtrar los registros, es decir, reajustar la declaración SQL. ¿Deberíamos cerrar el conjunto de registros y abrirlo con una nueva declaración SQL? No, usamos el atributo Filter para filtrar, por ejemplo
rs.open ejecutivo, conexión, 1,1
si... entonces rs.filter="nombre='xxx'"
en lugar de
rs.open ejecutivo, conexión, 1,1
si...entonces
rs.cerrar
ejecutivo=exec&" donde nombre='xxx'"
rs.open ejecutivo, conexión, 1,1
terminar si
De hecho, Filter debe usarse en muchos lugares. También se mencionará en las habilidades ASP futuras.
Mañana seguiremos hablando de los métodos del objeto Recordset.