ทางออกที่ง่ายที่สุดในการสืบค้นหลาย ๆ
[คำนำ]
เรามักจะพบปัญหาการสืบค้นหลายครั้งและข้อความ SQL ที่ยาวนานมักจะทำให้พระสับสน โดยเฉพาะอย่างยิ่งเมื่อไคลเอ็นต์ส่วนเติมเต็มในเงื่อนไขการสืบค้นมันจะยากกว่าที่จะใช้วิธีการทั่วไป
ต่อไปนี้ใช้ตัวตนของ "Where1 = 1" อย่างชาญฉลาด (อันที่จริงมันมีมากเพียงแค่ปล่อยให้มันมีค่าของความจริง) เพื่อแก้ปัญหานี้
[สรุปข้อความ]
'ชื่อเรื่องข้อมูลเรื่อง
ชื่อ บริษัท ของ บริษัท
'เนื้อหาของการโพสต์ข้อมูลของเนื้อหา
'ที่อยู่ของ บริษัท
โปรไฟล์ บริษัท Infomation
'หมายเหตุคำแนะนำที่เกี่ยวข้อง
ค่าข้างต้นทั้งหมดจะถูกส่งโดยแบบฟอร์มจากนั้นค่าที่สอดคล้องกันจะได้รับโดย: subject = trim (request.form ("หัวเรื่อง") ฯลฯ
-
'ฟังก์ชั่นนี้สำคัญมาก! -
functionsql (a, b, sqls)
IFB <> "" ถ้าลูกค้าไม่ได้ส่งค่านี้คำสั่ง SQL ที่เกี่ยวข้องจะไม่ถูกสร้างขึ้น
SQLS = SQLS & "และ" & A & "Like '%" & B & "%'"
endif
SQL = SQLS
endfunction
-
setConn = server.createObject ("adodb.connection"))
dbpath = server.mappath ("/database/mydb.mdb"))
conn.open "driver = {microsoft accessiver (*. mdb)}; pwd =; dbq =" & dbpath
setRs = server.createObject ("adodb.recordset"))
sqls = "เลือก*frommytablewhere1 = 1"
'การโทรต่อไปนี้ฟังก์ชันข้างต้นและมีการโทรจำนวนมาก (ในทางทฤษฎีใด ๆ )
SQLS = SQL ("หัวเรื่อง", หัวเรื่อง, SQLS)
SQLS = SQL ("บริษัท ", บริษัท , SQLS)
SQLS = SQL ("เนื้อหา", เนื้อหา, SQLS)
SQLS = SQL ("ที่อยู่", ที่อยู่, SQLS)
SQLS = SQL ("Infomation", Infomation, SQLS)
SQLS = SQL ("หมายเหตุ", note, SQLS)
sqls = sqls & "orderbyiddesc"
Rs.opensqls, Conn, 3,2
-
[บทสรุป]
หากไม่มีฟังก์ชั่นคีย์ฟังก์ชั่น (a, b, sqls) เราสามารถจินตนาการได้ว่าจำเป็นต้องมีการตัดสินกี่ครั้งหลังจากนั้น!