Direkomendasikan: Gunakan ASP untuk mengimplementasikan sistem pemeriksaan online Dengan pengembangan teknologi internet, pengajaran online akan menjadi bentuk utama pendidikan ulang orang dan pendidikan seumur hidup. Di sekolah online, orang dapat memilih kursus apa pun di mana saja, di mana saja tanpa dibatasi oleh ruang dan waktu. Pengembangan sekolah online mengusulkan pengembangan ujian online
5. Nilai pengembalianPemrosesan nilai pengembalian fungsi berbeda dari pemrosesan prosedur tersimpan, yang sering menyebabkan kebingungan. Dalam fungsi, nilai boolean sering dikembalikan untuk menunjukkan apakah fungsi berjalan dengan sukses atau tidak.
Jika somefunctionname () = true
'Fungsi berhasil
Namun, ketika memanggil prosedur tersimpan, metode yang sama tidak dapat digunakan karena penyimpanan dijalankan dengan metode eksekusi dan mengembalikan set rekaman.
Setel rsauthors = cmdauthors. eksekut
Jika Anda tidak bisa mendapatkan nilai pengembalian, bagaimana Anda menentukan apakah prosedur tersimpan telah dieksekusi dengan benar? Ketika kesalahan terjadi, kesalahan dilaporkan sehingga kode penanganan kesalahan yang disediakan dalam bab sebelumnya dapat digunakan untuk menangani kesalahan. Tapi apa yang harus dilakukan dengan beberapa kesalahan logis non-fatal?
Misalnya, pertimbangkan untuk menambahkan karyawan baru ke tabel karyawan. Anda mungkin tidak ingin mencegah dua karyawan memiliki nama yang sama, tetapi Anda ingin menunjukkan situasi ini. Kemudian, nilai pengembalian dapat digunakan untuk menunjukkan apakah petugas dengan nama yang sama sudah ada. Prosedur tersimpan adalah sebagai berikut:
Buat Prosedur USP_ADDEPLOYEE
@Emp_id char (9),
@Fname varchar (20),
@Minit char (1),
@Lname varchar (30),
@Job_id smallint,
@Job_lvl tinyint,
@Pub_id char (4),
@Hire_Date DateTime
SEBAGAI
MULAI
Deklarasikan @exists int - nilai pengembalian
- Lihat apakah ada karyawan dengan nama yang sama
Jika ada (pilih *
Dari karyawan
Dimana fname = @fname
Dan minit = @minit
Dan lname = @lname)
Pilih @Exist = 1
KALAU TIDAK
Pilih @exists = 0
Masukkan ke karyawan (emp_id, fname, minit, lname,
job_id, job_lvl, pub_id, hire_date)
Nilai (@emp_id, @fname, @minit, @lname, @job_id,
@Job_lvl, @pub_id, @hire_date)
Mengembalikan @exist
AKHIR
Proses pertama -tama memeriksa apakah ada karyawan dengan nama yang sama, dan menetapkan variabel yang sesuai ada. Jika ada nama yang sama, itu diatur ke 1, jika tidak, itu 0. Kemudian tambahkan staf ke tabel, dan kembalikan nilai yang ada sebagai nilai pengembalian.
Perhatikan bahwa meskipun nilai dikembalikan, itu tidak dinyatakan sebagai parameter untuk prosedur tersimpan.
Kode ASP yang menyebut prosedur ini adalah sebagai berikut:
<!-#include file = ../include/connection.asp->
<%
Redup cmdeployee
Redup lngrec
Redup lngadded
Setel CMDEmployee = Server.CreateObject (AdodB.Command)
'Atur properti perintah
Dengan cmdeadee
.ActiveConnection = strconn
.CommandText = USP_ADDEPLEYEE
.CommandType = ADCMDStoredProc
'Buat parameter
'Perhatikan bahwa nilai pengembalian adalah parameter pertama
.Parameters.Append .createParameter (return_value, adinteger, _
adparamreturnvalue)
.Parameters.Append .createParameter (@emp_id, adchar, adparaminput, 9)
.Parameters.Append .createParameter (@fname, advarwchar, adparaminput, 20)
.Parameters.Append .createParameter (@minit, adchar, adparaminput, 1)
.Parameters.Append .createParameter (@lname, advarwchar, adparaminput, 30)
.Parameters.Append .createParameter (@job_id, adsmallint, adparaminput)
.Parameters.Append .createParameter (@job_lvl, adunsignedtinyint, adparaminput)
.Parameters.Append .createParameter (@pub_id, adchar, adparaminput, 4)
.Parameters.Append .createParameter (@Hire_DATE, addBTImestamp, _
Adparaminput, 8)
'Atur nilai parameter
.Parameters (@emp_id) = request.form (txtempid)
.Parameters (@fname) = request.Form (txtFirstName)
.Parameters (@minit) = request.Form (txtInitial)
.Parameters (@lname) = request.Form (txtLastName)
.Parameters (@job_id) = request.form (lstjobs)
.Parameters (@job_lvl) = request.Form (txtjoBlevel)
.Parameters (@pub_id) = request.Form (lstpublisher)
.Parameters (@Hire_Date) = request.Form (txThireTate)
'Jalankan prosedur tersimpan
.Eksecute lngrecs ,, adexecutenorecords
'Ekstrak nilai pengembalian
lngadded = .parameters (return_value)
Berakhir dengan
Response.write karyawan baru ditambahkan. <p>
Jika lngadded = 1 lalu
Response.write Seorang karyawan dengan nama yang sama sudah ada.
Akhiri jika
Setel CMDeMreadee = tidak ada
%>
Perlu dicatat bahwa nilai pengembalian harus dibuat sebagai parameter pertama dalam set. Bahkan jika nilai pengembalian tidak muncul sebagai parameter dalam prosedur tersimpan, itu selalu merupakan parameter pertama dalam koleksi parameter.
Bagikan: ASP 3.0 Pemrograman Lanjutan (Tiga Puluh Enam) Bab 8 Dasar -dasar ADO dalam 7 bab pertama buku ini, buku ini telah berbicara tentang konten ASP dan bagaimana ASP membawa konten dinamis ke situs web. Telah terlihat bahwa program skripnya memungkinkan halaman web khusus, memungkinkan kami untuk membangun halaman ASP yang lebih kuat. Sekarang, ASP akan dipelajari