Al escribir programas ASP, generalmente se usa VBScript, pero esta no es la única opción, también se puede usar JScript. Pero cuando se utiliza JScript como lenguaje de ASP, existen algunos inconvenientes menores en comparación con el uso de VBScript, como el método GetRows de RecordSet.
Cuando se opera una base de datos en ASP, generalmente se usa el objeto RecordSet. Si se concentra en la eficiencia del programa, puede usar el método GetRows del objeto RecordSet para convertir el objeto del conjunto de registros en una matriz. usar el objeto RecordSet El método MoveNext es mucho más rápido y puede liberar el objeto RecordSet lo antes posible después de eliminar la matriz, lo que reduce el uso de recursos. Esta también es una forma de optimizar el rendimiento de ASP.
En VBScript, lo que se obtiene al utilizar el método RecordSet.GetRows es una matriz bidimensional, y los datos que contiene se pueden obtener atravesando la matriz.
Supongamos que hay una base de datos con una tabla llamada mytable y tres campos llamados id, primero y segundo.
Copie el código de código de la siguiente manera:
'codebyxujiwei
'http://www.xujiwei.cn/
'Definir variables
Dimconn,rs,datos,recN,i
'Conectarse a la base de datos
Setconn=Servidor.CrearObjeto(ADODB.Conexión)
conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&_
Servidor.MapPath(datos.mdb)
'Obtener el conjunto de registros
Setrs=conn.Execute(SELECTid,primero,segundoFROMmytable)
'Obtener la matriz de datos
datos=rs.GetRows()
'Cerrar el conjunto de registros y liberar el objeto
rs.Cerrar()
Configurar=Nada
'Obtener el número de registros
recN=UBound(datos,2)
'Datos de salida del bucle
Fori=0TorecN
'Tenga en cuenta que los subíndices de la matriz comienzan desde 0
'Mostrar datos en la base de datos
Respuesta.Escribir(ID:&datos(0,i)&,Primero:&datos(1,i)&_
,Segundo:&datos(2,i)&<br/>)
Próximo
'Cerrar la conexión de la base de datos y liberar el objeto
conexión.Cerrar()
Establecer conexión=Nada
%>
Pero al usar JScript, habrá un problema, es decir, JScript no tiene una matriz bidimensional. Si desea utilizar los datos obtenidos por GetRows, debe convertir la matriz bidimensional en VBScript en una matriz que JScript. Se puede reconocer, es decir, los elementos son una matriz unidimensional de matrices.
En JScript, la matriz obtenida usando el método GetRows tiene un método toArray, que se puede convertir en una matriz que se puede usar en JScript. Sin embargo, esta matriz es unidimensional, lo que significa que si queremos usarla como en VBScript. , todavía tenemos que hacerlo nosotros mismos para realizar la conversión.
Después de consultar MSDN y buscar artículos relacionados en Internet, escribí una función de conversión de matrices para usar el método GetRows en JScript.
Copie el código de código de la siguiente manera:
<scriptlanguage=JScriptrunat=servidor>
//códigobyxujiwei
//http://www.xujiwei.cn/
//Definir variables
varconn,rs,vdata,datos,recN,i;
//Conectarse a la base de datos
conn=Servidor.CreateObject(ADODB.Conexión);
conexión.Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+
Servidor.MapPath(datos.mdb));
//Obtener el conjunto de registros
rs=conn.Execute(SELECTid,primero,segundoFROMtest);
//Obtener la matriz de datos y convertirla en un tipo de matriz disponible en JScript
vdata=rs.GetRows().toArray();
//Obtener el número de campos en la tabla de datos
i=rs.Campos.Count;
//Cierra el conjunto de registros y libera el objeto
rs.Cerrar();
rs=nulo;
//convertir matriz
datos=transArray(vdata,i);
//Obtener el número de registros
recN=datos.longitud;
//datos de salida del bucle
para(i=0;i<recN;i++){
//Tenga en cuenta que los subíndices de la matriz comienzan desde 0
//Mostrar los datos en la base de datos.
Respuesta.Escribir(ID:+datos[i][0]+,Primero:+datos[i][1]+
,Segundo:+datos[i][2]+<br/>);
}
//Cierra la conexión a la base de datos y libera el objeto
conexión.Cerrar();
conexión=nulo;
//función de conversión de matriz
//byxujiwei
//Parámetros: arr-El objeto obtenido por el método GetRows y la matriz obtenida por el método toArray
//fieldslen: el número de campos en la tabla de datos
functiontransArray(arr,fieldslen){
varlen=arr.length/fieldslen,data=[],sp;
for(vari=0;i<len;i++){
datos[i]=newArray();
sp=i*fieldslen;
for(varj=0;j<fieldslen;j++)
datos[i][j]=arr[sp+j];
}
datos de retorno;
}
</script>
Para algunos datos que no se actualizan con frecuencia pero se usan con frecuencia, puede usar el objeto Aplicación para almacenarlos en caché después de obtener con éxito la matriz de datos, lo que reduce la cantidad de consultas a la base de datos y optimiza el rendimiento de ASP hasta cierto punto.