Saat menulis program ASP, umumnya VBScript digunakan, tapi ini bukan satu-satunya pilihan. Namun saat menggunakan JScript sebagai bahasa ASP, ada beberapa ketidaknyamanan kecil dibandingkan menggunakan VBScript, seperti metode GetRows pada RecordSet.
Saat mengoperasikan database di ASP, objek RecordSet umumnya digunakan. Jika Anda fokus pada efisiensi program, Anda dapat menggunakan metode GetRows dari objek RecordSet untuk mengubah objek kumpulan rekaman menjadi array menggunakan objek RecordSet. Metode MoveNext jauh lebih cepat, dan dapat melepaskan objek RecordSet sesegera mungkin setelah mengeluarkan array, sehingga mengurangi penggunaan sumber daya.
Dalam VBScript, yang diperoleh dengan menggunakan metode RecordSet.GetRows adalah array dua dimensi, dan data di dalamnya dapat diperoleh dengan menelusuri array tersebut.
Misalkan ada database dengan tabel bernama mytable dan tiga field bernama id, pertama, dan kedua.
Copy kode kodenya sebagai berikut:
'codebyxujiwei
'http://www.xujiwei.cn/
'Tentukan variabel
Dimconn,rs,data,recN,i
'Hubungkan ke basis data
Setconn=Server.CreateObject(ADODB.Koneksi)
samb.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&_
Server.MapPath(data.mdb)
'Dapatkan rekamannya
Setrs=sambungan.Jalankan(SELECTid,first,secondFROMmytable)
'Dapatkan susunan datanya
data=rs.GetRows()
'Tutup kumpulan rekaman dan lepaskan objeknya
rs.Tutup()
Setr=Tidak ada
'Dapatkan jumlah catatan
recN=UBound(data,2)
'Ulangi data keluaran
Fori=0TorecN
'Perhatikan bahwa subskrip array dimulai dari 0
'Menampilkan data dalam database
Respon.Tulis(ID:&data(0,i)&,Pertama:&data(1,i)&_
,Kedua:&data(2,i)&<br/>)
Berikutnya
'Tutup koneksi database dan lepaskan objeknya
samb.Tutup()
Setconn=Tidak ada
%>
Namun pada saat menggunakan JScript akan terjadi kendala yaitu JScript tidak memiliki array dua dimensi. Jika ingin menggunakan data yang diperoleh GetRows, maka harus mengkonversi array dua dimensi yang ada di VBScript menjadi array yang JScript. dapat mengenali, yaitu elemen-elemennya adalah array array satu dimensi.
Pada JScript, array yang diperoleh dengan menggunakan metode GetRows memiliki metode toArray yang dapat diubah menjadi array yang dapat digunakan di JScript. Namun array ini bersifat satu dimensi, artinya jika kita ingin menggunakannya seperti di VBScript , kita masih perlu melakukannya sendiri untuk melakukan konversi.
Setelah berkonsultasi dengan MSDN dan mencari artikel terkait di Internet, saya menulis fungsi konversi array untuk menggunakan metode GetRows di JScript.
Copy kode kodenya sebagai berikut:
<scriptbahasa=JScriptrunat=server>
//codebyxujiwei
//http://www.xujiwei.cn/
//Definisikan variabel
varconn,rs,vdata,data,recN,i;
//Hubungkan ke basis data
samb=Server.CreateObject(ADODB.Connection);
samb.Buka(Penyedia=Microsoft.Jet.OLEDB.4.0;DataSource=+
Server.MapPath(data.mdb));
//Dapatkan kumpulan rekor
rs=sambungan.Jalankan(SELECTid,first,secondFROMtest);
//Dapatkan array data dan ubah menjadi tipe array yang tersedia di JScript
vdata=rs.GetRows().toArray();
//Mendapatkan jumlah field dalam tabel data
i=rs.Fields.Count;
//Tutup recordset dan lepaskan objeknya
rs.Tutup();
rs=nol;
//konversi array
data=transArray(vdata,i);
//Dapatkan jumlah record
recN=data.panjang;
//Perulangan data keluaran
untuk(i=0;i<recN;i++){
//Perhatikan bahwa subskrip array dimulai dari 0
//Menampilkan data dalam database
Response.Write(ID:+data[i][0]+,Pertama:+data[i][1]+
,Kedua:+data[i][2]+<br/>);
}
//Tutup koneksi database dan lepaskan objek
samb.Tutup();
samb=null;
//fungsi konversi array
//byxujiwei
//Parameter: arr-Objek yang diperoleh dengan metode GetRows dan array yang diperoleh dengan metode toArray
//fieldslen-jumlah field dalam tabel data
functiontransArray(arr,fieldslen){
varlen=arr.length/fieldslen,data=[],sp;
untuk(vari=0;i<len;i++){
data[i]=array baru();
sp=i*bidang ramping;
untuk(varj=0;j<fieldslen;j++)
data[i][j]=arr[sp+j];
}
data pengembalian;
}
</skrip>
Untuk beberapa data yang tidak sering diperbarui tetapi sering digunakan, Anda dapat menggunakan objek Aplikasi untuk menyimpannya dalam cache setelah berhasil mendapatkan larik data, sehingga mengurangi jumlah kueri ke database dan mengoptimalkan kinerja ASP sampai batas tertentu.