สวัสดีครับ ผมสร้าง form เพื่อรับตัวเลือกมาค้นหา ข้อมูลใน ฐานข้อมูล ตอนนี้มี field ทั้งหมด 5 field คือ 1.code 2.name 3.quatity 4.formdate 5. todate โดย 1.คือรหัสสินค้า 2.รายการสินค้า 3.ยอดคงเหลือ 4.วันที่รับสินค้า 5.วันที่รับสินค้าสุดท้าย(ในกรณีที่ค้นหา เป็นช่วงก็ให้ระบุวันที่ในข้อนี้)
ตอนนี้ผมกำหนด
chkSum=0 'สร้างตัวแปรขึ้นมาตรวจสอบเงื่อนไขการค้นหา
If frm_se_code<>"" Then chkSum=chkSum+1
If frm_se_name<>"" Then chkSum=chkSum+2
If frm_se_q<>"" Then chkSum=chkSum+4
If fromdate="ON" Then chkSum=chkSum+8
If todate="ON" Then chkSum=chkSum+16
if chkSum=0 Then chkSum=cInt(Request.QueryString("chkSum"))
แล้วก็มา select case chkSum เอาว่า ได้ค่าอะไรแสดงว่า user ต้องการค้นอ่ะไร โดยการมา สร้าง SQL ตอนนี้ทั้งหมด 31 case ยาวเฟ้ย เลยครับ ..... -_-' ปัญหาคือว่าผมจะเพิ่มตัวเลือกในการค้นหาอีก ทีนี้ ยาวเป็น 80 case เลย
ผมคิดว่าจะมา เช็คว่า user ต้องการเช็คอะไรก็ให้ string เป็น SQL เอา ลักษณะนี้
SQL="SELECT * FROM product "
if frm_se_code<>"" Then SQL=SQL&" WHERE product ='"& frm_se_code &"'"
ไล่ไปเรื่อยๆ ก็มาติดที่ว่า จะ เชื่อม SQL ด้วย AND อีก ไม่รู้จะเช็คยังไง
เห่อ ๆ ถ้ามี 80 case คุณก็ต้อง if ทั้ง 80 case สิครับ
ทำไมจะมีเงื่อนไขในการค้นหาอะไรเสียมากมายขนาดนั้น
SQL="SELECT * FROM product "
if frm_se_code<>"" Then SQL=SQL&" WHERE product ='"& frm_se_code &"'"
if frm_se_name<>"" then sql=sql &"where product='"& frm_se_name &"'"
if frm_se_q <> "" then sql=sql &"where product='"& frm_se_q &"'"
if .....
...
..
..
แบบนี้การประมวลผลก็แย่อะสิครับ..ทำงานหนัก..ทำให้เกิดความล่าช้า..เพราะว่าจะต้องตรวจสอบเงื่อนไขตั้ง 80 เงื่อนไข...อืมม..จำเริญ..ถ้าเป็นงานใหญ่ ๆ ก็รอชาติหน้าละกัน