อัปเดต แทรก และ ? ตัวอักษรใน DBEXECUTE

หัวข้อนี้อธิบายลักษณะการอัปเดตและแทรกของ DBEXECUTE และการใช้ ? ตัวอักษร

สมมติว่าคุณมีตาราง SQL ว่างที่เรียกว่ารายการ โดยมีสองคอลัมน์: ID และชื่อ ID คือคีย์หลัก

คุณมีสูตรนี้ในเซลล์ที่ไม่มีการป้องกัน:

=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")

ในโหมดมุมมอง คุณระบุ 1 ในเซลล์แล้วกด Enter

เนื่องจากตารางว่างเปล่าและไม่มี ID ที่มีค่า 1 คำสั่ง Insert จึงถูกดำเนินการ คำสั่ง Insert จะสร้างแถวนี้ในตาราง:

หมายเลขแถว รหัส ชื่อ
1 1 1

เมื่อป้อน 1 แสดงว่าคุณระบุ ID ? ตัวอักษรทำให้ค่านี้ถูกป้อนในคอลัมน์ชื่อ

ตอนนี้คุณระบุ 2 ในเซลล์ เนื่องจากมี ID 1 อยู่ คำสั่ง Insert จึงไม่ถูกดำเนินการ แถวที่มี ID 1 จะได้รับการอัปเดตตามที่แสดงในตารางนี้แทน:

หมายเลขแถว รหัส ชื่อ
1 2 1

เนื่องจากไม่ได้ดำเนินการคำสั่ง Insert คอลัมน์ชื่อจึงไม่ได้รับการอัปเดต

ตอนนี้คุณระบุ 3 ในเซลล์ เนื่องจากไม่มี ID 1 คำสั่ง Insert จึงถูกดำเนินการและเพิ่มแถวใหม่:

หมายเลขแถว รหัส ชื่อ
1 1 3
2 2 1

ค่า 1 และ 3 เป็นผลมาจากส่วนนี้ของสูตร: VALUES (1,?)

หากคุณระบุ 4 ตอนนี้ ID 1 จะปรากฏขึ้นอีกครั้งและแถวที่มี ID 1 จะได้รับการอัปเดต

หมายเลขแถว รหัส ชื่อ
1 2 1
2 4 3

หากคุณระบุ 5 จะมีแถวเพิ่มขึ้นอีกหนึ่งแถว:

หมายเลขแถว รหัส ชื่อ
1 1 5
2 2 1
3 4 3