"ทำไมไม่มีความเคลื่อนไหว แต่ผ่านเงื่อนไขเราไปได้"
เรื่องมีอยู่ว่า จะเขียนโค๊ดตรวจสอบเงื่อนไขตรวจสอบความเคลื่อนไหวของข้อมูล ถ้าผ่านมาเกิน 6 เดือนให้แจ้งเตือนถึงสิ่งที่อาจจะทำให้เกิดข้อผิดพลาด หากผู้ใช้ยังฝืนดันทุรังใช้ข้อมูลนั้นต่อไป
IF Month > 6 THEN
DISPLAY แบร่ๆๆๆ ข้อมูลเก่าเกินไปแล้วนะ ไปตรวจสอบหน่อยซิว่ายังใช้ได้จริง
END IF
Month = ระยะเวลาที่ทำรายการครั้งสุดท้ายเทียบกับปัจจุบัน
ถ้ากำหนดให้วันที่ล่าสุด คือ 2014-05-15
และวันที่ปัจจุบัน คือ 2014-09-04
Month จะมีค่าเท่ากับผลต่างของเดือนคือ 3 เดือนกว่า ซึ่งจะไม่นับเศษ Month ก็จะได้เท่ากับ 3
กรณีนี้ก็คือสามารถทำรายการได้ปกติ เพราะว่ามีการทำรายการไม่เกิน 6 เดือน นั่นก็คือข้อมูลยังใหม่ๆสดๆร้อนๆอยู่นั่นเอง
แล้วถ้าเพิ่งผ่านมาไม่กี่วันอย่างกรณีนี้ล่ะ
ถ้ากำหนดให้วันที่ล่าสุด คือ 2014-09-01
และวันที่ปัจจุบัน คือ 2014-09-04
เห็นมั้ยผ่านมาแค่ 4 วัน ผลต่างของเดือนก็คือ 0 ซึ่งก็ยังไม่เกิน 6 เดือน ก็ทำรายการได้ปกติ
และแล้วก็เกิดปัญหากับเลข 0 ขึ้นจนได้
กรณีที่ข้อมูลเก่า เพิ่มเอาไว้เฉยๆ ไม่ได้ทำรายการใดๆเลย เพราะเปลี่ยนไปใช้ข้อมูลอื่นแทน แต่แล้ววันดีคืนดีก็หยิบกลับมาใช้ซะงั้น
เอาล่ะ...ถึงเวลาที่โค๊ดเช็คเงื่อนไขของเราได้ออกโรงตรวจสอบเสียที 555+
เริ่มจาก ค้นหารายการครั้งล่าสุดที่นำไปใช้ แล้วก็มาคำนวณกับปัจจุบัน
ผลลัพธ์ที่ได้ก็คือ 0 ซึ่งไม่เกิน 6 เอาไปใช้งานได้เลย
แต่แล้ว....
"ข้อมูลนี้ใช้ไม่ได้นะน้อง มันเป็นข้อมูลเก่าเขาไม่ใช้งานแล้ว ปล่อยให้เลือกได้ไง"
"เอ่อ...ผมก็เช็คแล้วนะ T___T"
ได้เวลากลับมาดูโค๊ดตัวเองอีกที "โอ้...ซานต้า" ปล่อยไก่ตัวเบอเร่อเลย ผมเช็คเงื่อนไขไม่หมดครับ เพราะแหล่งที่ต้องเช็คที่จริงมันต้องมี 2 ที่นี่เอง นอกจากตารางความเคลื่อนไหวล่าสุดแล้ว ต้องไปเช็ควันที่เพิ่มข้อมูลหลักด้วยนั่นเอง!!!
ก็ที่มันได้ค่าเป็น 0 ก็แหงอยู่แล้วล่ะ ก็มันไม่เคยนำไปใช้งานจะไปมีค่าออกมาได้ไงกันเล่า!!
เลยต้องเพิ่มเงื่อนไขเข้าไปใหม่ ถ้าไม่พบความเคลื่อนไหวให้ไปดึงค่าวันที่เพิ่มข้อมูลครั้งแรกมาเปรียบเทียบแทน และแล้วก็ผ่านไปได้ด้วยดี
Month = -1
IF ค้นหาความเคลื่อนไหวเจอ = True THEN
Month = เปรียบเทียบด้วยวันที่ทำรายการครั้งล่าสุด
Else
Month = นำวันที่เพิ่มข้อมูลครั้งแรก มาคำนวณ
End IF
จากตัวอย่างถ้าไม่พบข้อมูลใดๆ เลยก็จะได้ค่า น้อยกว่า 0 เวลาตรวจสอบก็เปลี่ยนเป็น
IF Month > 6 OR Month < 0 THEN
DISPLAY แบร่ๆๆๆ ข้อมูลเก่าเกินไปแล้วนะ ไปตรวจสอบหน่อยซิว่ายังใช้ได้จริง
END IF
แล้วก็ผ่านไปอีกงานนึง ไว้โอกาสหน้า มาบอกเล่าเรื่องราวกันใหม่ สวัสดีครับ ^___^
ความคิดเห็น
แสดงความคิดเห็น