เรามักประสบปัญหาการสืบค้นหลายประการ และคำสั่ง SQL ที่ยาวมักทำให้ผู้คนสับสน โดยเฉพาะอย่างยิ่งเมื่อไคลเอนต์กรอกเงื่อนไขการสืบค้นบางส่วน การใช้วิธีทั่วไปก็จะยิ่งยากขึ้น ข้อมูลต่อไปนี้ใช้ข้อมูลระบุตัวตนอย่างชาญฉลาดโดยที่ 1=1 (อันที่จริงมีหลายรายการ เพียงปล่อยให้ค่าเป็น TRUE) เพื่อแก้ไขปัญหานี้ 'ชื่อเรื่องข้อมูล
'บริษัท ชื่อของบริษัทที่เผยแพร่ข้อมูล
'เนื้อหาของข้อมูลที่เผยแพร่
'ที่อยู่บริษัท
'ข้อมูลประวัติบริษัท
'หมายเหตุคำแนะนำที่เกี่ยวข้อง
ค่าข้างต้นถูกส่งโดย FORM จากนั้นรับค่าที่เกี่ยวข้องผ่าน: subject=trim(Request.Form(subject)) ฯลฯ
-
'ฟังก์ชั่นนี้สำคัญมาก! -
ฟังก์ชั่น sql(a,b,sqls)
ถ้า b<> ดังนั้น 'หากไคลเอนต์ไม่ส่งค่านี้ คำสั่ง SQL ที่เกี่ยวข้องจะไม่ถูกสร้างขึ้น
sqls=sqls & และ & a & ชอบ '% & b & %'
สิ้นสุดถ้า
sql=sqls
สิ้นสุดฟังก์ชัน
'----------------- โทรสอบถามฐานข้อมูล
ตั้งค่า conn=Server.CreateObject(ADODB.Connection)
DBpath=Server.MapPath(/ฐานข้อมูล/mydb.mdb)
ไดรเวอร์ Conn.Open={ไดรเวอร์ Microsoft Access (*.mdb)};pwd=;dbq= & DBpath
ตั้งค่า rs=Server.CreateObject(ADODB.Recordset)
sqls=select * จาก mytable โดยที่ 1=1
'เพียงเรียกใช้ฟังก์ชันด้านบนด้านล่าง ก็สามารถเรียกได้หลายครั้ง (ตามทฤษฎีก็ได้)
sqls=sql(หัวเรื่อง,หัวเรื่อง,sqls)
sqls=sql(บริษัท,บริษัท,sqls)
sqls=sql(เนื้อหา, เนื้อหา, sqls)
sqls=sql(ที่อยู่, ที่อยู่, sqls)
sqls=sql(ข้อมูล,ข้อมูล,sqls)
sqls=sql(หมายเหตุ,หมายเหตุ,sqls)
sqls=sqls และเรียงลำดับตามรหัส
rs.open sqls,conn,3,2
-
หากไม่มีฟังก์ชันคีย์ Function sql (a, b, sqls) เราก็สามารถจินตนาการได้ว่าต้องใช้การตัดสินกี่ครั้งต่อครั้ง!