ASP เรียกโปรแกรมการจัดเก็บ SQLServer
แหล่งที่มา http://www.bmj2000.com/vb/techniccolumn/subdetail.asp?mainid=2&boardifo
การโทรขั้นตอนการจัดเก็บฐานข้อมูล
-
setDataConn = server.createObject ("adodb.connection"))
'สร้างวัตถุการเชื่อมต่อ
dataconn.open "dsn = sinotrans; เซิร์ฟเวอร์ = app_server; uid = sa; pwd =; app = microsoft (r) evelopyERSTUDIO; WSID = APP_SERVER; regional = ใช่"
setCmdTemp = server.createObject ("adoDB.Command"))
'สร้างวัตถุคำสั่ง
setrst = server.createObject ("adodb.recordset"))
'สร้างวัตถุชุดระเบียน
cmdTemp.CommandText = "dbo.pd_test" 'ชื่อขั้นตอนที่เก็บไว้
cmdTemp.CommandType = 4
หมวดหมู่คำสั่งคือ 4 แสดงว่าเป็นขั้นตอนที่เก็บไว้
setCmdTemp.activeConnection = dataconn
SetTMPPARAM = CMDTEMP.CreateParameter ("ReturnValue", 3,4,4)
cmdtemp.parameters.appendtmpparam
SetTMPPARAM = CMDTEMP.CreateParameter ("@Begindate", 135,1,16, RIQI)
'สร้างวัตถุพารามิเตอร์อินพุต
cmdtemp.parameters.appendtmpparam
rst.opencmdtemp ,, 1,3
'สร้างผลลัพธ์การสอบถาม
-
ขั้นตอนที่เก็บไว้ที่เรียกว่าที่นี่คือ PD_Test ซึ่งเป็นวิธีมาตรฐานที่มีให้ใน ADO อย่างไรก็ตามมีปัญหานั่นคือเมื่อมีคำสั่งเลือกมากกว่าสองข้อความในขั้นตอนที่เก็บไว้ แต่มันเป็นไปไม่ได้ที่จะดำเนินการในเวลาเดียวกัน ADO จะแจ้งให้คุณทราบว่ามีคำสั่งเลือกจำนวนมากเกินไปในขั้นตอนที่เก็บไว้ วิธีแก้ปัญหาคือการดำเนินการขั้นตอนที่เก็บไว้โดยตรงโดยใช้วิธีการดำเนินการของวัตถุการเชื่อมต่อของ ADO ดังต่อไปนี้:
-
setDataConn = server.createObject ("adodb.connection"))
'สร้างวัตถุการเชื่อมต่อ
dataconn.open "dsn = sinotrans; เซิร์ฟเวอร์ = app_server; uid = sa; pwd =; app = microsoft (r) evelopyERSTUDIO; WSID = APP_SERVER; regional = ใช่"
SS = "ExecutedBo.pd_test" & "'" & riqi1 & "'"
setRs = dataconn.execute (SS)
-