우리는 종종 여러 쿼리 문제에 직면하고, 긴 SQL 문은 사람들을 혼란스럽게 만드는 경우가 많습니다. 특히 클라이언트가 쿼리 조건을 부분적으로 채우는 경우 일반적인 방법을 사용하기가 더욱 어려워집니다. 다음은 이 문제를 해결하기 위해 1=1(실제로는 많으므로 TRUE 값으로 두십시오)인 항등식을 교묘하게 사용합니다. '주제 정보 제목
'회사' 정보를 게시하는 회사의 이름입니다.
'공개된 정보의 내용
'주소 회사 주소
'정보 회사소개서
'관련 지침을 참고하세요.
위의 값은 FORM으로 제출되며, subject=trim(Request.Form(subject)) 등을 통해 해당 값을 얻습니다.
<%
'이 기능은 매우 중요합니다! -------------
함수 sql(a,b,sqls)
if b<> then '클라이언트가 이 값을 제출하지 않으면 해당 SQL 문이 생성되지 않습니다.
sqls=sqls & and & a & like '% & b & %'
종료하면
sql=sqls
기능 종료
'-----------------데이터베이스 호출
conn=Server.CreateObject(ADODB.Connection) 설정
DBpath=Server.MapPath(/database/mydb.mdb)
Conn.Open 드라이버={Microsoft Access 드라이버(*.mdb)};pwd=;dbq= & DBpath
rs=Server.CreateObject(ADODB.Recordset)를 설정합니다.
sqls=select * from mytable, 여기서 1=1
'아래에서 위 함수를 호출하기만 하면 여러 번 호출할 수 있습니다(이론적으로는 모두).
sqls=sql(주제,주제,sqls)
sqls=sql(회사,회사,sqls)
sqls=sql(콘텐츠,콘텐츠,sqls)
sqls=sql(주소,주소,sqls)
sqls=sql(정보,정보,sqls)
sqls=sql(참고,참고,sqls)
sqls=sqls & ID 설명으로 주문
rs.open sqls,conn,3,2
%>
핵심 함수인 Function sql(a, b, sqls)이 없다면 얼마나 많은 판단이 차례차례 필요한지 짐작이 갑니다!