DBEXECUTE
DBEXECUTE รองรับเฉพาะในสภาพแวดล้อมในองค์กรและในInfor แอปพลิเคชันเชิงพาณิชย์ในสภาพแวดล้อมคลาวด์ รองรับเฉพาะ DBEXECUTEFIXED ในรายงานที่กำหนดเองใน Infor คลาวด์
คุณสามารถอ่านค่าจากฐานข้อมูลเชิงสัมพันธ์ อัปเดตค่าที่มีอยู่ และแทรกค่าใหม่ DBEXECUTE ทำงานโดยตรงกับฐานข้อมูล ไม่ผ่านรายการ ดังนั้น ไม่เหมือนกับฟังก์ชัน RWDB คุณสามารถแทรกแถวลงในฐานข้อมูลได้ พารามิเตอร์ของสูตร DBEXECUTE คือคำสั่ง SQL
ฟังก์ชัน DBEXECUTE รองรับคีย์ผสมสี่ชุด ซึ่งคุณสามารถเขียนค่า 0, Null หรือสตริงว่างลงในฐานข้อมูล:
- DEL: เขียน 0
- CTRL+DEL: เขียน Null
- BACKSPACE: เขียนสตริงว่าง ("")
- CTRL+BACKSPACE: เขียนสตริงว่าง ("")
ไวยากรณ์
สูตร DBEXECUTE มีพารามิเตอร์เหล่านี้
- ชื่อฐานข้อมูล: นี่ระบุการเชื่อมต่อข้อมูลเชิงสัมพันธ์ที่กำหนดไว้ใน d/EPM Administration
- เลือกคำสั่ง: ใช้เพื่อดึงข้อมูลจากฐานข้อมูล เป็นคำสั่ง SQL SELECT มาตรฐาน เมื่อป้อนค่าใหม่ ค่าที่มีอยู่จะได้รับการอัปเดต หากไม่มีค่าอยู่แล้ว คำสั่ง INSERT จะถูกใช้ เมื่อต้องการเขียนกลับไปยังฐานข้อมูล คิวรีต้องอ้างอิงคีย์หลัก SQL SELECT สามารถคืนค่าได้หลายค่าจากแถวหนึ่ง แต่ DBEXECUTE จะละเว้นทั้งหมดยกเว้นค่าแรก ดังนั้น ในการส่งคืนและเขียนกลับค่าที่ไม่ใช่คีย์หลัก ตรวจสอบให้แน่ใจว่าคีย์หลักไม่ใช่ค่าแรกที่ร้องขอโดยคำสั่ง
- แทรกคำสั่ง: ระบุวิธีการป้อนข้อมูลใหม่ในฐานข้อมูล เป็นคำสั่ง SQL INSERT มาตรฐาน คุณสามารถใช้อักขระ
?
ในคำสั่ง INSERT มันแสดงถึงค่าที่ DBEXECUTE ป้อนล่าสุดลงในเซลล์ปัจจุบัน
ตัวอย่าง
ในตัวอย่างนี้ productid
คือคีย์หลัก
=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
productid=123","INSERT INTO products VALUES(’123’,?)")
คำสั่ง select จะถูกดำเนินการทุกครั้งที่มีการประมวลผลฟังก์ชัน DBEXECUTE ตัวอย่างเช่น หากแสดงในรายงาน ใช้เป็นพารามิเตอร์ในสูตรอื่น ใช้ในการดำเนินการ เป็นต้น แต่คำสั่ง INSERT จะดำเนินการก็ต่อเมื่อมีการป้อนค่าในเซลล์และไม่มีค่าในฐานข้อมูล คุณสามารถใช้คุณลักษณะนี้ได้หากคุณใช้การดำเนินการเพื่อดำเนินการ DBEXECUTE และต้องการแทรกข้อมูลลงในฐานข้อมูล หรือเพื่อดำเนินการคำสั่ง SQL อื่นๆ
ตัวอย่าง
ในตัวอย่างนี้ productid
คือคีย์หลัก รหัสผลิตภัณฑ์ที่อ้างอิงถูกเก็บไว้ในตัวแปรรายงานที่เรียกว่า rv_prod
=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")
DBEXECUTE ในการดำเนินการ
ในการรันคำสั่ง INSERT หรือคำสั่ง SQL อื่น ๆ ในสูตร DBEXECUTE ที่ดำเนินการโดยการดำเนินการ ให้ใช้คำสั่ง insert แทนคำสั่ง select
ตัวอย่าง
=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
value]’)","")