วันนี้บรรณาธิการจะแบ่งปันวิธีการเรียกขั้นตอนที่เก็บไว้ใน ASP เพื่อนที่สนใจจะได้เรียนรู้เกี่ยวกับเรื่องนี้กับบรรณาธิการ!
1 นี่เป็นวิธีที่ง่ายที่สุดด้วยพารามิเตอร์อินพุตสองตัวไม่มีค่าส่งคืน:
Set Connection = Server.CreateObject ("ADODB.Connection")
Connection.open somedsn
Connection.execute "Procname varvalue1, varvalue2"
'ล้างวัตถุทั้งหมดให้เป็นทรัพยากรฟรี
Connection.close
ตั้งค่าการเชื่อมต่อ = ไม่มีอะไร
2 หากคุณต้องการส่งคืนชุด recordset:
Set Connection = Server.CreateObject ("ADODB.Connection")
Connection.open somedsn
ตั้งค่า rs = server.createObject ("adodb.recordset"))
Rs.Open "Exec Procname Varvalue1, varvalue2", การเชื่อมต่อ
'ล้างวัตถุทั้งหมดให้เป็นทรัพยากรฟรี
Rs.close
Connection.close
ตั้งค่า rs = ไม่มีอะไร
ตั้งค่าการเชื่อมต่อ = ไม่มีอะไร
3 สองวิธีข้างต้นไม่สามารถมีค่าส่งคืน (ยกเว้น recordSet) หากคุณต้องการได้รับค่าส่งคืนคุณจะต้องใช้วิธีคำสั่ง
ก่อนอื่นมีค่าส่งคืนสองประเภท หนึ่งคือการส่งคืนค่าโดยตรงในขั้นตอนที่เก็บไว้เช่นเดียวกับฟังก์ชั่นของค่าส่งคืน C และ VB; อีกอันคือการส่งคืนค่าหลายค่าและชื่อตัวแปรที่จัดเก็บค่าเหล่านี้จะต้องระบุก่อนในพารามิเตอร์การเรียก
ตัวอย่างนี้จะจัดการกับพารามิเตอร์หลายตัวพารามิเตอร์อินพุตพารามิเตอร์เอาท์พุทชุดเร็กคอร์ดส่งคืนและค่าส่งคืนโดยตรง (ทั้งหมดเพียงพอหรือไม่)
ขั้นตอนที่เก็บไว้มีดังนี้:
ใช้ผับ
ไป
- สร้างขั้นตอนที่เก็บไว้
สร้างขั้นตอน sp_pubstest
- กำหนดตัวแปรพารามิเตอร์สามตัวจดบันทึกตัวที่สามเครื่องหมายพิเศษจะใช้สำหรับเอาต์พุต
@au_lname varchar (20)
@intid int,
@intidout เอาต์พุต int
เช่น
เลือก @intidout = @intid + 1
เลือก *
จากผู้เขียน
โดยที่ au_lname ชอบ @au_lname + '%'
-ส่งคืนค่าโดยตรง
return @intid + 2
โปรแกรม ASP ที่เรียกขั้นตอนที่เก็บไว้มีดังนี้:
Dim CMDSP
หม
dim adcmdspstoredproc
สลัว adparamreturnvalue
Dim adparaminput
Dim adparamoutput
อดิเรกสลัว
หรอก
หม
หม
Dim Advarchar
'ค่าเหล่านี้เป็นค่าคงที่ที่กำหนดไว้ล่วงหน้าใน VB และสามารถเรียกได้โดยตรง แต่ไม่ได้กำหนดไว้ล่วงหน้าใน VBScript
ADCMDSPSTOREDPROC = 4
adparamreturnValue = 4
adparaminput = 1
adparamoutput = 2
Adinteger = 3
advarchar = 200
IVAL = 5
รูปไข่ = 3
'สร้างวัตถุคำสั่ง
ตั้งค่า cmdsp = server.createObject ("adodb.command"))
'สร้างลิงค์
cmdsp.activeConnection = "driver = {sql server}; server = (local); uid = sa; pwd =; database = pubs"
'กำหนดชื่อการเรียกวัตถุคำสั่ง
cmdsp.commandtext = "sp_pubstest"
'ตั้งค่าการเรียกคำสั่งตามขั้นตอนที่เก็บไว้ (ADCMDSPSTOREDPROC = 4)
CMDSP.CommandType = ADCMDSPSTORDPROC
'เพิ่มพารามิเตอร์ลงในวัตถุคำสั่ง
'กำหนดขั้นตอนที่เก็บไว้มีค่าส่งคืนโดยตรงและเป็นจำนวนเต็มค่าเริ่มต้นคือ 4
cmdsp.parameters.append cmdsp.createparameter ("return_value", adinteger, adparamreturnvalue, 4)
'กำหนดพารามิเตอร์อินพุตอักขระ
cmdsp.parameters.append cmdsp.createparameter ("@au_lname", advarchar, adparaminput, 20, "m")
'กำหนดพารามิเตอร์อินพุตจำนวนเต็ม
cmdsp.parameters.append cmdsp.createparameter ("@intid", adinteger, adparaminput ,, ival)
'กำหนดพารามิเตอร์เอาต์พุตจำนวนเต็ม
cmdsp.parameters.append cmdsp.createparameter ("@intidout", adinteger, adparamoutput, รูปไข่)
'เรียกใช้โพรซีเดอร์ที่เก็บไว้และรับชุดเรคคอร์ดส่งคืน
ตั้งค่า adors = cmdsp.execute
'พิมพ์แต่ละระเบียนซึ่งเป็นฟิลด์ที่เป็นเสมือนคุณสามารถเพิกเฉยได้
ในขณะที่ไม่ใช่ adors.eof
สำหรับแต่ละ adofield ใน adors.fields
Response.write adofield.name & "=" & adofield.value & "
"& vbcrlf
ต่อไป
Response.write "
-
Adors.movenext
ใช้
'พิมพ์ค่าเอาต์พุตสองค่า:
Response.write "
@intidout = "& cmdsp.parameters ("@intidout "). ค่า &"
-
Response.write "
return value = "& cmdsp.parameters (" return_value "). ค่า &"
-
'ทำความสะอาดครั้งใหญ่
ตั้งค่า adors = ไม่มีอะไร
ตั้งค่า cmdsp.activeConnection = ไม่มีอะไร
ตั้งค่า cmdsp = ไม่มีอะไร
-
มีวิธีอื่น ๆ ซึ่งจะปิดเล็กน้อยและฉันจะพูดถึงมันในภายหลัง
บทความนี้ได้อ้างอิงบทความจำนวนมากและจะไม่ถูกระบุไว้ที่นี่
ข้างต้นเป็นการแนะนำวิธีการโทรขั้นตอนที่เก็บไว้ใน ASP ฉันหวังว่าความรู้และวัสดุที่เกี่ยวข้องที่รวบรวมโดยบรรณาธิการจะเป็นประโยชน์กับคุณ สำหรับเนื้อหาเพิ่มเติมโปรดดำเนินการต่อเพื่อให้ความสนใจกับเว็บไซต์ของช่องเทคโนโลยี Wuxin!