Muchos programadores de ASP han tenido la experiencia de ejecutar consultas de bases de datos y luego mostrar los resultados de la consulta en tablas HTML. Normalmente hacemos esto:
| Aquí hay una cita: <% 'Crear conexión/conjunto de registros 'Rellenar datos en el objeto de conjunto de registros %> <TABLA> <% Hacer mientras no rs.EOF %> <TR> <TD ><%=rs(Campo1)% </TD> <TD ><%=rs(Campo2)% </TD> . </TR> <% rs.MoverSiguiente Bucle %> </TABLA> |
Si hay muchos resultados de consulta, el servidor tardará mucho tiempo en interpretar su script ASP porque hay muchas declaraciones Response.Write para procesar si coloca todos los resultados de salida en una cadena larga (de hasta). , entonces el servidor solo necesita interpretar la declaración Response.Write una vez y será mucho más rápido. Algunos chicos capaces de Microsoft han convertido la idea en realidad (tenga en cuenta que esta es una característica solo disponible en ADO 2.0 y superior). Si todavía está utilizando la versión anterior, actualice a la última versión)
Con el método GetString, podemos usar solo un Response.Write para mostrar todos los resultados. Es como un bucle DO... LOOP que puede determinar si el Recordset es EOF.
El uso de GetString es el siguiente (todos los parámetros son opcionales):
Cadena = conjunto de registros.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
Para generar una tabla HTML a partir de los resultados del Recordset, solo debemos preocuparnos de 3 de los 5 parámetros de GetString:
ColumnDelimiter (el código HTML que separa las columnas del conjunto de registros), RowDelimiter (el código HTML que separa las filas del conjunto de registros) y NullExpr (el código HTML que debe generarse cuando el registro actual está vacío). Como puede ver en el ejemplo de generación de una tabla HTML a continuación, cada columna está separada por... y cada fila está separada por... Código de ejemplo:
| Aquí hay una cita: <%@ IDIOMA=VBSCRIPT %> <% Opción Explícita 'Buena técnica de codificación 'Establecer conexión con la base de datos conexión tenue Establecer conexión = Server.CreateObject(ADODB.Connection) conn.Open DSN=Northwind; 'Crear un conjunto de registros atenuados Establecer rs = Server.CreateObject(ADODB.Recordset) rs.Open SELECT * FROM tabla1, conexión 'Guarda nuestra única cuerda grande Dim strTable strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> , ) %> <HTML> <CUERPO> <TABLA> <TR><TD> <% Respuesta.Escribir(strTable) %> </TR></TD> </TABLA> </CUERPO> </HTML> <% '¡Limpieza! rs.Cerrar Configurar=Nada conexión.Cerrar Establecer conexión = Nada %> |
La cadena strTable se usa para almacenar el código de la tabla HTML que generamos a partir de los resultados de SELECT * FROM table1.
Habrá código HTML entre cada columna de la tabla HTML, y el código HTML entre cada fila. El método GetString generará el código HTML correcto y lo almacenará en strTable, de modo que solo necesitemos una línea de Response.Write para generar. el conjunto de datos Todos los registros de. Veamos un ejemplo simple, suponiendo que los resultados de nuestra consulta devuelvan las siguientes filas y columnas:
| Aquí hay una cita: Col1 Col2 Col3 Fila 1 Bob Smith 40 Fila 1 Ed Frank 43 Fila 1 demanda anulada 42 |
La cadena devuelta por la declaración GetString será:
| Aquí hay una cita: Bob</td ><td >Smith</td ><td >40</td ><td </td ></tr ><tr >< td >Ed... |
Esta cadena parece larga y desordenada, pero es el código HTML deseado. (Tenga en cuenta que lo colocaremos después en el código HTML escrito a mano. Esto se debe a que nuestra cadena de formato no contiene las cadenas necesarias para el encabezado y pie de página de estas tablas).