Buffer ของ datawindow มีอยู่ด้วยกันทั้งหมด 4 แบบด้วยกันคือ
Primary buffer เป็น buffer หลักที่เก็บข้อมูลทุกอย่างของตัว datawindow
Delete buffer เป็น buffer ที่เก็บข้อมูลที่ถูกลบทิ้งจาก primary buffer
Filter buffer เป็น buffer ที่เก็บข้อมูลที่ถูกทำ filter จาก primary buffer
Original buffer เป็น buffer ที่ถูกใช้โดยตัวโปรแกรม PowerBuilder เอง จะเป็น buffer ที่เก็บข้อมูลที่ถูก retrieve จาก database
เราสามารถอ้างถึง buffer ต่างๆเหล่านี้ได้ก็ต่อเมื่อ ฟังก์ชั่นนั้น ยอมอนุญาติ โดยจะมี argument ที่จะรับค่าคือ dwbuffer และค่าที่ส่งไปนั้นมีรูปแบบดังนี้
Primary! Delete! Filter!
ใน Primay และ Filter buffer นั้นจะมี edit status flag เป็นตัวชี้ให้ทราบว่า row หรือ column นั้น ถูก modified หรือ เป็น ของใหม่ และ flag เหล่านี้เราสามารถเรียกใช้ได้โดย ใช้คำสั่ง GetItemStatus ซึ่งจะเก็บค่าเอาใว้ใน dwitemstatus โดยมีรูปแบบดังนี้
dwcontrol.GetItemStatus ( row, column, dwbuffer )
โดยเรากำหนดตัวแปรขึ้นมาหนึ่งตัว ตามตัวอย่าง
dwitemstatus dwstatus
จากนั้นก็นำตัวแปร dwstatus ไปรับค่าจากฟังก์ชั่น GetItemStatus สำหรับ return code ที่ได้รับกลับมามีดังนี้
NotModified! row,column ที่ไม่มีการเปลี่ยนแปลงดังนั้นก็ไม่จำเป็นต้องมีการใช้คำสั่ง update
Datamodified! แสดงว่ามีการเปลี่ยนแปลงเกิดขึ้นใน row หรือ column ดังนั้นจึงต้องมีการ update
New! มีการ insert row เกิดขึ้นหลังจากที่ได้ retrieve ข้อมูลแล้ว
NewModified! มีการ insert row เกิดขึ้นหลังจากที่ได้ retrieve ข้อมูลแล้ว และมีการเปลี่ยนแปลงใน column ด้วย
บทความนี้มาจาก www.soopsawat.com


