Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Prosedur Tersimpan dengan Cekap dan Mendapatkan Keputusan dalam ASP Klasik?
Pelaksanaan Prosedur Tersimpan ASP Klasik dan Pengambilan Keputusan: Amalan Terbaik
Pembangun ASP klasik sering menghadapi cabaran apabila bekerja dengan prosedur tersimpan SQL Server, terutamanya mengenai perolehan semula hasil. Respons kosong atau set rekod tertutup adalah masalah biasa, walaupun apabila prosedur harus mengembalikan data. Ini selalunya berpunca daripada mengabaikan tetapan SQL Server yang penting dan pengendalian data yang tidak cekap dalam kod ASP.
Satu punca kerap keputusan kosong ialah mengabaikan menggunakan SET NOCOUNT ON
dalam prosedur tersimpan. Secara lalai, SQL Server mengembalikan bilangan baris yang terjejas, yang boleh mengganggu set hasil sebenar. SET NOCOUNT ON
memastikan hanya data yang dikembalikan.
Satu lagi kesesakan prestasi sedang berulang melalui data menggunakan ADODB.Recordset
. Pendekatan ini boleh menjadi perlahan. Kaedah yang lebih cekap ialah mendapatkan semula keseluruhan keputusan yang ditetapkan ke dalam tatasusunan untuk pemprosesan seterusnya.
Pendekatan Dioptimumkan untuk Pengendalian Prosedur Tersimpan ASP Klasik:
Langkah berikut memperincikan kaedah yang dioptimumkan untuk melaksanakan prosedur tersimpan dan mendapatkan semula data dalam ASP Klasik:
Segera ADODB.Command
: Cipta objek ADODB.Command
dan wujudkan sambungan menggunakan rentetan sambungan yang sah atau objek ADODB.Connection
.
Konfigurasikan Sifat Perintah: Tetapkan sifat CommandText
kepada nama prosedur tersimpan dan sifat CommandType
kepada adCmdStoredProc
.
Urus Parameter: Jika prosedur tersimpan menerima parameter, gunakan koleksi Parameters
untuk menambahkannya, menyatakan jenis data dan arah (mis., adParamInput
).
Laksanakan dan Dapatkan Data: Jalankan arahan menggunakan kaedah Execute
. Daripada memproses set rekod secara langsung, gunakan kaedah GetRows
untuk memuatkan keseluruhan set hasil dengan cekap ke dalam tatasusunan dua dimensi.
Contoh Kod yang Disemak:
Berikut ialah contoh kod yang diperhalusi yang menunjukkan peningkatan ini:
<code class="language-vbscript">Const adParamInput = 1, adVarChar = 200 Dim conn_string, row, rows, ary_data conn_string = "PROVIDER=SQLOLEDB;DATA SOURCE=X;DATABASE=Y;UID=Z;PWD=W;" Set objCommandSec = CreateObject("ADODB.Command") With objCommandSec .ActiveConnection = conn_string .CommandType = adCmdStoredProc .CommandText = "usp_Targets_DataEntry_Display" .Parameters.Append .CreateParameter("@userinumber", adVarChar, adParamInput, 10, inumber) .Parameters.Append .CreateParameter("@group", adVarChar, adParamInput, 50, "ISM") .Parameters.Append .CreateParameter("@groupvalue", adVarChar, adParamInput, 50, ismID) .Parameters.Append .CreateParameter("@targettypeparam", adVarChar, adParamInput, 50, targetType) Set rs = .Execute() If Not rs.EOF Then ary_data = rs.GetRows() rs.Close() Set rs = Nothing End If End With Set objCommandSec = Nothing ' Process data from the array If IsArray(ary_data) Then rows = UBound(ary_data, 2) For row = 0 To rows Response.Write(ary_data(1, row) & "<br>") ' Example: Accessing the second column (index 1) Next Else Response.Write("No data returned") End If</code>
Kod yang disemak ini dengan cekap mengambil semula data ke dalam tatasusunan, mengelakkan overhed prestasi lelaran set rekod, yang membawa kepada pelaksanaan prosedur tersimpan yang lebih pantas dan lebih dipercayai dalam ASP Klasik. Ingat untuk mengendalikan kemungkinan ralat dengan sewajarnya dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Prosedur Tersimpan dengan Cekap dan Mendapatkan Keputusan dalam ASP Klasik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!