DBEXECUTE

หมายเหตุ

ในสภาพแวดล้อมคลาวด์ DBEXECUTE รองรับเฉพาะใน Infor แอปพลิเคชันเชิงพาณิชย์ คุณไม่สามารถใช้ DBEXECUTE ในแอปพลิเคชันแบบกำหนดเองหรือแบบขยายได้ ให้ใช้ DBEXECUTEFIXED แทน

คุณสามารถอ่านค่าจากฐานข้อมูลเชิงสัมพันธ์ อัปเดตค่าที่มีอยู่ และแทรกค่าใหม่ DBEXECUTE ทำงานโดยตรงกับฐานข้อมูล ไม่ผ่านรายการ ดังนั้น ไม่เหมือนกับฟังก์ชัน RWDB คุณสามารถแทรกแถวลงในฐานข้อมูลได้ พารามิเตอร์ของสูตร DBEXECUTE คือคำสั่ง SQL

ฟังก์ชัน DBEXECUTE รองรับคีย์ผสมสี่ชุด ซึ่งคุณสามารถเขียนค่า 0, Null หรือสตริงว่างลงในฐานข้อมูล:

  • DEL: เขียน 0
  • CTRL+DEL: เขียน Null
  • BACKSPACE: เขียนสตริงว่าง ("")
  • CTRL+BACKSPACE: เขียนสตริงว่าง ("")

ไวยากรณ์

สูตร DBEXECUTE มีพารามิเตอร์เหล่านี้

  1. ชื่อฐานข้อมูล: นี่ระบุการเชื่อมต่อข้อมูลเชิงสัมพันธ์ที่กำหนดไว้ใน d/EPM Administration
  2. เลือกคำสั่ง: ใช้เพื่อดึงข้อมูลจากฐานข้อมูล เป็นคำสั่ง SQL SELECT มาตรฐาน เมื่อป้อนค่าใหม่ ค่าที่มีอยู่จะได้รับการอัปเดต หากไม่มีค่าอยู่แล้ว คำสั่ง INSERT จะถูกใช้ เมื่อต้องการเขียนกลับไปยังฐานข้อมูล คิวรีต้องอ้างอิงคีย์หลัก SQL SELECT สามารถคืนค่าได้หลายค่าจากแถวหนึ่ง แต่ DBEXECUTE จะละเว้นทั้งหมดยกเว้นค่าแรก ดังนั้น ในการส่งคืนและเขียนกลับค่าที่ไม่ใช่คีย์หลัก ตรวจสอบให้แน่ใจว่าคีย์หลักไม่ใช่ค่าแรกที่ร้องขอโดยคำสั่ง
  3. แทรกคำสั่ง: ระบุวิธีการป้อนข้อมูลใหม่ในฐานข้อมูล เป็นคำสั่ง 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]’)","")