Ada proyek asli yang dikembangkan menggunakan ASP dan menggunakan database Oracle. Gunakan kode di bawah ini untuk mendapatkan pernyataan kueri.
Setel RS = Server.CreateObject("ADODB.Recordset")
Pernyataan SQL yang akan dieksekusi oleh RS.open memiliki struktur dua tingkat dalam logika koneksi database. Saat melakukan perulangan melalui data induk, kumpulan data anak yang terdapat dalam setiap data induk akan ditanyakan.
strSQL = "Pernyataan SQL untuk menanyakan data induk"
RS.buka pernyataan SQL yang akan dieksekusi, koneksi database
Lakukan Sampai RS.EOF
strSQL2 = "Pernyataan SQL untuk menanyakan data anak"
RS2.buka pernyataan SQL yang akan dieksekusi, koneksi database
RS2.TUTUP
RS.MoveNext
Lingkaran
RS.Tutup
Namun setelah beralih dari database Oracle ke database SQL Server, logikanya tidak berubah tetapi waktu telah banyak berubah. Dari yang awalnya beberapa detik hingga lebih dari 50 detik, tampaknya hal ini disebabkan oleh loop bersarang dari dua RecordSet. Solusinya adalah dengan menggunakan array untuk menyimpan data induk, kemudian mengeksekusi RS.Close, dan kemudian melakukan loop melalui array untuk menanyakan data anak.
Saya tidak tahu alasannya dengan baik, jadi tolong beri saya saran. Terima kasih.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx