VFP ใช้ GROUP BY ได้ไหม?
VFP 8/9 ใช้หลักของ ANSI SQL (1992) จึงมีการตรวจสอบว่าอนุคำสั่ง GROUP BY จะใช้ได้เมื่อทุกฟิลด์/คอลัมน์ไม่เป็น Aggregate Field (นัยยะหมายถึงพวกที่ต้องคำนวณหาทั้งหลาย เช่น sum(total) , max , min นั่นแหละ) ไม่เช่นนั้นจะถือว่าใช้คำสั่งผิด ซึ่งเราอาจตั้งค่าให้ไม่ต้องตรวจสอบเรื่องนี้ได้โดยใช้คำสั่ง
SET ENGINEBEHAVIOR 70
โดยไว้ก่อนจะสั่งคำสั่งที่ใช้ GROUP BY ครับ ผมยังไม่มีเวลาหาข้อมูลต่อว่า เพราะอะไรเค้าถึงไม่ยอมให้ใช้ (เฉพาะ VFP นี่แหละ) ดังนั้นแนะนำว่าถ้าไม่ชัวร์ก็พยายามเลี่ยงนะครับ เพราะเค้าก็ต้องมีเหตุผลของเค้าแหละซึ่งมันอาจผิดพลาดได้ง่ายสำหรับกรณีแบบนี้ เราควรหาทางอื่นดีกว่าซึ่งทำได้เยอะแยะไป ไม่งั้นเกิดทำมึนๆใช้ๆไป ทำไปเยอะๆใช้ไปนานๆเข้าไปแล้วเจอ Runtime Error / Bug เข้าในตอนที่ลืมไปแล้วจะยุ่งและไม่คุ้มเสียครับ เว้นแต่ว่าคุณรู้ว่าคุณกำลังทำอะไร ^_^
เจอกันตอนหน้าครับ
สวัสดี
SET ENGINEBEHAVIOR 70
โดยไว้ก่อนจะสั่งคำสั่งที่ใช้ GROUP BY ครับ ผมยังไม่มีเวลาหาข้อมูลต่อว่า เพราะอะไรเค้าถึงไม่ยอมให้ใช้ (เฉพาะ VFP นี่แหละ) ดังนั้นแนะนำว่าถ้าไม่ชัวร์ก็พยายามเลี่ยงนะครับ เพราะเค้าก็ต้องมีเหตุผลของเค้าแหละซึ่งมันอาจผิดพลาดได้ง่ายสำหรับกรณีแบบนี้ เราควรหาทางอื่นดีกว่าซึ่งทำได้เยอะแยะไป ไม่งั้นเกิดทำมึนๆใช้ๆไป ทำไปเยอะๆใช้ไปนานๆเข้าไปแล้วเจอ Runtime Error / Bug เข้าในตอนที่ลืมไปแล้วจะยุ่งและไม่คุ้มเสียครับ เว้นแต่ว่าคุณรู้ว่าคุณกำลังทำอะไร ^_^
เจอกันตอนหน้าครับ
สวัสดี
ถ้าใครอยากรู้ว่า SET ENGINEBEHAVIOR 70 | 80 | 90 ต่างกันอย่างไร ก็ไปอ่านเพิ่มตามลิงก์นี้ได้เลยครับ
ตอบลบhttps://msdn.microsoft.com/en-us/library/ax9aye37(v=vs.80).aspx