1. ใช้ขั้นตอนที่เก็บไว้เพื่อส่งคืนชุดข้อมูล
ชุดข้อมูลที่ส่งคืนโดยขั้นตอนที่เก็บไว้ใน Oracle จะถูกส่งคืนโดยพารามิเตอร์ของข้อมูลประเภทเคอร์เซอร์ REF และพารามิเตอร์ที่ส่งคืนข้อมูลควรเป็นประเภทออกหรือในประเภท
เนื่องจากชนิดข้อมูลของพารามิเตอร์ไม่สามารถระบุได้โดยตรงเมื่อกำหนดขั้นตอนที่เก็บไว้คือ: เคอร์เซอร์อ้างอิงเคอร์เซอร์ REF จึงถูกกำหนดใหม่โดยวิธีการต่อไปนี้:
สร้างหรือแทนที่แพ็คเกจ fuxjpackage คือ
ประเภท fuxjresultset เป็นเคอร์เซอร์อ้างอิง;
-คุณสามารถกำหนดเนื้อหาอื่น ๆ ได้
สิ้นสุด fuxjpackage;
กำหนดขั้นตอนที่เก็บไว้อีกครั้ง:
สร้างหรือแทนที่โพรซีเดอร์ UpdateFuxJexample (SDM ใน Char, SMC ใน Char, Preccur ใน fuxjpackage.fuxjresultset)
เช่น
เริ่ม
อัปเดต fuxjexample set mc = smc โดยที่ dm = sdm;
ถ้า sql%rowcount = 0 แล้ว
ย้อนกลับ;
เปิด preccur สำหรับ
เลือก '0' res จากคู่;
อื่น
ให้สัญญา;
เปิด preccur สำหรับ
เลือก '1' res จาก dual;
สิ้นสุดถ้า;
จบ;
และ
สร้างหรือแทนที่ขั้นตอน InsertFuxJexample (SDM ใน Char, SMC ในถ่าน, preccur ใน fuxjpackage.fuxjresultset)
เช่น
เริ่ม
แทรกลงในค่า fuxjexample (DM, MC) (SDM, SMC);
ให้สัญญา;
เปิด preccur สำหรับ
เลือก * จาก fuxjexample;
จบ;
2. โทรขั้นตอนที่เก็บไว้ซึ่งส่งคืนชุดข้อมูลใน Delphi
ที่เก็บข้อมูลที่เรียกใช้งานชุดข้อมูลส่งคืนผ่านการควบคุม TSTORDPROC หรือ TQUERY PtinputOutput
ใช้ TSTORDPROC เพื่อดำเนินการตั้งค่าที่เกี่ยวข้องของ UPDATEFUXJEXAMPLE AS:
Object StorgeProc1: TSTORDPROC
databasename = 'useproc'
storedProcName = 'UpdateFuxJexample'
paramdata = <
รายการ
datatype = ftstring
name = 'sdm'
paramtype = ptinput
จบ
รายการ
datatype = ftstring
name = 'smc'
paramtype = ptinput
จบ
รายการ
datatype = ftCursor
name = 'preccur'
paramType = ptinputOutput
ค่า = null
สิ้นสุด>
จบ
วิธีการดำเนินการคือ:
StoredProc1.params.items [0] .ASTSTRING: = EDIT1.TEXT; // กำหนดค่าให้กับพารามิเตอร์;
StoredProc1.params.items [1] .ASTSTRING: = EDIT2.Text;
StoredProc1.active: = false;
StoredProc1.active: = true;
ใช้ TQUERY เพื่อเรียกใช้การตั้งค่าที่เกี่ยวข้องของ InsertFuxJexample เป็น:
Object Query1: TQuery
databasename = 'useproc'
sql.strings = (
'เริ่ม'
'InsertFuxJexample (sdm => m, smc =>: mc, preccur =>: reccur);'
'จบ;')
paramdata = <
รายการ
datatype = ftstring
name = 'dm'
paramtype = ptinput
จบ
รายการ
datatype = ftstring
name = 'mc'
paramtype = ptinput
จบ
รายการ
datatype = ftCursor
name = 'reccur'
paramType = ptinputOutput
สิ้นสุด>
จบ
วิธีการดำเนินการคือ:
query1.params.items [0] .ASTRING: = EDIT3.Text;
query1.params.items [1] .asstring: = edit4.text; // กำหนดค่าให้กับพารามิเตอร์;
query1.active: = false;
query1.active: = true;
ถ้า sql%rowcount = 0 แล้ว
ย้อนกลับ;
เปิด preccur สำหรับ
เลือก '0' res จากคู่;
อื่น
ให้สัญญา;
เปิด preccur สำหรับ
เลือก '1' res จาก dual;
สิ้นสุดถ้า;
จบ;
และ
สร้างหรือแทนที่ขั้นตอน InsertFuxJexample (SDM ใน Char, SMC ในถ่าน, preccur ใน fuxjpackage.fuxjresultset)
เช่น
เริ่ม
แทรกลงในค่า fuxjexample (DM, MC) (SDM, SMC);
ให้สัญญา;
เปิด preccur สำหรับ
เลือก * จาก fuxjexample;
จบ;
2. โทรขั้นตอนที่เก็บไว้ซึ่งส่งคืนชุดข้อมูลใน Delphi
ที่เก็บข้อมูลที่เรียกใช้งานชุดข้อมูลส่งคืนผ่านการควบคุม TSTORDPROC หรือ TQUERY PtinputOutput
ใช้ TSTORDPROC เพื่อดำเนินการตั้งค่าที่เกี่ยวข้องของ UPDATEFUXJEXAMPLE AS:
Object StorgeProc1: TSTORDPROC
databasename = 'useproc'
storedProcName = 'UpdateFuxJexample'
paramdata = <
รายการ
datatype = ftstring
name = 'sdm'
paramtype = ptinput
จบ
รายการ
datatype = ftstring
name = 'smc'
paramtype = ptinput
จบ
รายการ
datatype = ftCursor
name = 'preccur'
paramType = ptinputOutput
ค่า = null
สิ้นสุด>
จบ
วิธีการดำเนินการคือ:
StoredProc1.params.items [0] .ASTSTRING: = EDIT1.TEXT; // กำหนดค่าให้กับพารามิเตอร์;
StoredProc1.params.items [1] .ASTSTRING: = EDIT2.Text;
StoredProc1.active: = false;
StoredProc1.active: = true;
ใช้ TQUERY เพื่อเรียกใช้การตั้งค่าที่เกี่ยวข้องของ InsertFuxJexample เป็น:
Object Query1: TQuery
databasename = 'useproc'
sql.strings = (
'เริ่ม'
'InsertFuxJexample (sdm => m, smc =>: mc, preccur =>: reccur);'
'จบ;')
paramdata = <
รายการ
datatype = ftstring
name = 'dm'
paramtype = ptinput
จบ
รายการ
datatype = ftstring
name = 'mc'
paramtype = ptinput
จบ
รายการ
datatype = ftCursor
name = 'reccur'
paramType = ptinputOutput
สิ้นสุด>
จบ
วิธีการดำเนินการคือ:
query1.params.items [0] .ASTRING: = EDIT3.Text;
query1.params.items [1] .asstring: = edit4.text; // กำหนดค่าให้กับพารามิเตอร์;
query1.active: = false;
query1.active: = true;
สิ่งที่แนบมา: เฟรมเวิร์กง่าย ๆ สำหรับการสร้างขั้นตอนที่เก็บไว้ซึ่งส่งคืนชุดข้อมูล
1.
สร้างหรือแทนที่แพ็คเกจ TestPackage คือ
ประเภท testresultset คือเคอร์เซอร์อ้างอิง;
ท้าย Testpackage;
2.
สร้างหรือแทนที่การทดสอบขั้นตอน
-
preccur ใน testpackage. testresultset
-
เช่น
เริ่ม
เปิด preccur สำหรับ
เลือก * จากตาราง;
จบ;