При написании программ ASP обычно используется VBScript, но это не единственный вариант. Но при использовании JScript в качестве языка ASP возникают некоторые незначительные неудобства по сравнению с использованием VBScript, например метод GetRows класса RecordSet.
При работе с базой данных в ASP обычно используется объект RecordSet. Если вы сосредоточены на эффективности программы, вы можете использовать метод GetRows объекта RecordSet для преобразования объекта набора записей в массив. использование объекта RecordSet. Метод MoveNext работает намного быстрее и может освободить объект RecordSet как можно скорее после извлечения массива, тем самым сокращая использование ресурсов. Это также способ оптимизировать производительность ASP.
В VBScript с помощью метода RecordSet.GetRows получается двумерный массив, а данные внутри него можно получить, просматривая массив.
Предположим, существует база данных с таблицей с именем mytable и тремя полями с именами id, first и Second.
Скопируйте код кода следующим образом:
'codebyxujiwei
'http://www.xujiwei.cn/
'Определить переменные
Dimconn,rs,data,recN,i
'Подключаемся к базе данных
Setconn=Server.CreateObject(ADODB.Connection)
conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&_
Server.MapPath(data.mdb)
'Получите набор записей
Setrs=conn.Execute(SELECTid,первый,второйFROMmytable)
'Получаем массив данных
данные = rs.GetRows()
'Закрываем набор записей и освобождаем объект
rs.Close()
Setrs=Ничего
'Получить количество записей
RecN=UBound(данные,2)
'Выходные данные цикла
Фори=0TorecN
'Обратите внимание, что индексы массива начинаются с 0
'Отображение данных в базе данных
Response.Write(ID:&data(0,i)&,First:&data(1,i)&_
,Второй:&data(2,i)&<br/>)
Следующий
'Закрываем соединение с базой данных и освобождаем объект
конн.Закрыть()
Setconn=Ничего
%>
Но при использовании JScript возникнет проблема, то есть в JScript нет двумерного массива. Если вы хотите использовать данные, полученные с помощью GetRows, вам необходимо преобразовать двумерный массив в VBScript в массив, который использует JScript. может распознавать, то есть элементы представляют собой одномерный массив массивов.
В JScript массив, полученный с помощью метода GetRows, имеет метод toArray, который можно преобразовать в массив, который можно использовать в JScript. Однако этот массив является одномерным, а это значит, что если мы захотим использовать его, как в VBScript. , нам все равно придется сделать это самостоятельно, чтобы выполнить преобразование.
Проконсультировавшись с MSDN и поискав соответствующие статьи в Интернете, я написал функцию преобразования массива для использования метода GetRows в JScript.
Скопируйте код кода следующим образом:
<scriptlanguage=JScriptrunat=сервер>
//кодотxujiwei
//http://www.xujiwei.cn/
//Определяем переменные
varconn, rs, vdata, данные, RecN, я;
//Подключаемся к базе данных
conn=Server.CreateObject(ADODB.Connection);
conn.Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+
Server.MapPath(data.mdb));
//Получаем набор записей
rs=conn.Execute(SELECTid,first, SecondFROMtest);
//Получаем массив данных и преобразуем его в тип массива, доступный в JScript
vdata=rs.GetRows().toArray();
//Получаем количество полей в таблице данных
я = rs.Fields.Count;
//Закрываем набор записей и освобождаем объект
рс.Закрыть();
РС = ноль;
//конвертируем массив
данные = transArray (vdata, я);
//Получаем количество записей
RecN=data.length;
//Вывод данных цикла
for(i=0;i<recN;i++){
//Обратите внимание, что индексы массива начинаются с 0
//Отображение данных в базе данных
Response.Write(ID:+data[i][0]+,First:+data[i][1]+
,Второй:+data[i][2]+<br/>);
}
//Закрываем соединение с базой данных и освобождаем объект
конн.Закрыть();
конн = ноль;
//функция преобразования массива
//byxujiwei
//Параметры: arr — объект, полученный методом GetRows, и массив, полученный методом toArray.
//fieldslen — количество полей в таблице данных
functiontransArray(arr,fieldslen){
varlen=arr.length/fieldslen,data=[],sp;
for(vari=0;i<len;i++){
данные[i]=newArray();
sp=i*fieldslen;
for(varj=0;j<fieldslen;j++)
данные[i][j]=arr[sp+j];
}
возврат данных;
}
</скрипт>
Для некоторых данных, которые не обновляются часто, но часто используются, вы можете использовать объект Application для их кэширования после успешного получения массива данных, тем самым уменьшая количество запросов к базе данных и в определенной степени оптимизируя производительность ASP.