Saturday, September 7, 2013

Visual Basic 6.0 และ การใช้ Snapshot ต่าง (Using Snapshots)



Visual Basic 6.0 และ การใช้ Snapshot ต่าง (Using Snapshots)
ใน Visual Basic 6.0 Snapshot เป็นชื่อที่มีความหมายเป็นภาพหรือสำเนาข้อมูลในกลุ่มเรคอร์ด (Recrodset) ที่เวลาใดเวลาหนึ่งโดยเฉพาะ
Snapshot คล้ายกับ Dynaset ตรงที่สร้างจากตารางต่างๆ, การใช้คำสั่งของ SQL, หรือ จาก QueryDef, dynaset หรือ snapshot อื่น snapshot ต่างจาก dynaset ตรงที่มันไม่สามารถปรับปรุงได้
ตัวอย่าง Source Code ต่อไปนี้ ได้แสดงวิธีการสร้างกลุ่มเรคอร์ด (Record) ประเภท Snapshot เอาไว้คือ
Set ThisRS=ThisDB.OpenRecordset(sSQL,dbOpenSnapshot)
*** Snapshot จะนำข้อมูลในแต่ละเรคอร์ดออกมาแสดงได้เร็วกว่า Dynaset เพราะว่า snapshot จะใช้วิธีสำเนาข้อมูล แต่ dynaset จะใช้วิธีกำหนดพอยน์เตอร์ (pointer) ชี้ไปที่ข้อมูล
Snapshot  ไม่สามารถปรับปรุง recordset
***เราควรใช้ snapshot ส่งกลับกลุ่มเรคอร์ดเล็กๆเท่านั้น เพื่อไม่ให้เกิดปัญหากับหน่วยความจำต่างๆ
การติดตั้ง snapshot (Setting Up a Snapshot) เราสามารถสร้าง snapshot โดยการกำหนดออปเจ็คต์ Recordset กับคำสั่ง Dim
แล้วใช้ เมธอด OpenRecordset พร้อมพารมิเตอร์ dbOpenSnapshot เพื่อกำหนดเรคอร์ดต่างๆให้ออปเจ็คต์ dynaset จะอนุญาตท่านสามารถระบุพารามิเตอร์ต่างๆในเมธอด OpenRecordset ดังนี้
dbDenyWrite   ป้องกันผู้ใช้อื่นๆ ไม่ให้เขียนลงใน dynaset ในขณะที่เราเปิดใช้งานอยู่
dbForwardOnly สนับสนุนให้เลื่อนผ่าน snapshot ไปข้างหน้าเท่านั้น
dbSQLPassThrough ผ่านคำสั่งของ SQL ที่ใช้สร้าง snapshot ไปให้ฐานข้อมูลของ ODBC เพื่อดำเนินการ