Ao escrever programas ASP, geralmente é usado VBScript, mas esta não é a única opção que também pode ser usada. Mas ao usar JScript como linguagem ASP, existem alguns pequenos inconvenientes em comparação ao uso de VBScript, como o método GetRows de RecordSet.
Ao operar um banco de dados em ASP, o objeto RecordSet geralmente é usado. Se você se concentrar na eficiência do programa, poderá usar o método GetRows do objeto RecordSet para converter o objeto do conjunto de registros em uma matriz. usar o objeto RecordSet O método MoveNext é muito mais rápido e pode liberar o objeto RecordSet o mais rápido possível após retirar o array, reduzindo assim o uso de recursos.
No VBScript, o que é obtido usando o método RecordSet.GetRows é um array bidimensional, e os dados dentro dele podem ser obtidos percorrendo o array.
Suponha que haja um banco de dados com uma tabela chamada minhatabela e três campos chamados id, primeiro e segundo.
Copie o código do código da seguinte forma:
'códigobyxujiwei
'http://www.xujiwei.cn/
'Definir variáveis
Dimconn,rs,dados,recN,i
'Conecta ao banco de dados
Setconn=Server.CreateObject(ADODB.Connection)
conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&_
Servidor.MapPath(dados.mdb)
'Obter o conjunto de registros
Setrs=conn.Execute(SELECTid,primeiro,segundoFROMminhatabela)
'Obtém a matriz de dados
dados=rs.GetRows()
'Fecha o recordset e libera o objeto
rs.Fechar()
Setrs=Nada
'Obtém o número de registros
recN=UBound(dados,2)
'Dados de saída do loop
Fori=0TorecN
'Observe que os subscritos do array começam em 0
'Exibir dados no banco de dados
Response.Write(ID:&dados(0,i)&,Primeiro:&dados(1,i)&_
,Segundo:&dados(2,i)&<br/>)
Próximo
'Fecha a conexão com o banco de dados e libera o objeto
conexão.Fechar()
Setconn=Nada
%>
Mas ao usar JScript, haverá um problema, ou seja, JScript não possui um array bidimensional. Se quiser usar os dados obtidos por GetRows, você deve converter o array bidimensional em VBScript em um array que JScript. pode reconhecer, ou seja, os elementos são uma matriz unidimensional de matrizes.
Em JScript, o array obtido usando o método GetRows possui um método toArray, que pode ser convertido em um array que pode ser usado em JScript. Porém, esse array é unidimensional, o que significa que se quisermos usá-lo como em VBScript. , ainda precisamos fazer isso sozinhos para fazer a conversão.
Depois de consultar o MSDN e pesquisar artigos relacionados na Internet, escrevi uma função de conversão de array para usar o método GetRows em JScript.
Copie o código do código da seguinte forma:
<scriptlinguagem=JScriptrunat=servidor>
//códigobyxujiwei
//http://www.xujiwei.cn/
//Definir variáveis
varconn,rs,vdata,dados,recN,i;
//Conecta ao banco de dados
conn=Server.CreateObject(ADODB.Connection);
conn.Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+
Servidor.MapPath(dados.mdb));
//Obtém o conjunto de registros
rs=conn.Execute(SELECTid,primeiro,segundoFROMteste);
//Obtém o array de dados e converte-o em um tipo de array disponível em JScript
vdata=rs.GetRows().toArray();
//Obtém o número de campos na tabela de dados
i=rs.Fields.Count;
//Fecha o recordset e libera o objeto
rs.Fechar();
rs=nulo;
//converte matriz
dados=transArray(vdata,i);
//Obtém o número de registros
recN=dados.comprimento;
//Dados de saída do loop
for(i=0;i<recN;i++){
//Observe que os subscritos do array começam em 0
//Mostra os dados no banco de dados
Response.Write(ID:+dados[i][0]+,Primeiro:+dados[i][1]+
,Segundo:+dados[i][2]+<br/>);
}
//Fecha a conexão com o banco de dados e libera o objeto
conexão.Fechar();
conexão=nulo;
//função de conversão de array
//byxujiwei
//Parâmetros: arr-O objeto obtido pelo método GetRows e o array obtido pelo método toArray
//fieldslen-o número de campos na tabela de dados
functiontransArray(arr,fieldslen){
varlen=arr.length/fieldslen,data=[],sp;
for(vari=0;i<len;i++){
dados[i]=newArray();
sp=i*camposlen;
for(varj=0;j<fieldslen;j++)
dados[i][j]=arr[sp+j];
}
dados de retorno;
}
</script>
Para alguns dados que não são atualizados com frequência, mas que são usados com frequência, você pode usar o objeto Aplicativo para armazená-los em cache após obter a matriz de dados com êxito, reduzindo assim o número de consultas ao banco de dados e otimizando o desempenho do ASP até certo ponto.