[머리말]
우리는 종종 여러 쿼리 문제에 직면하고, 긴 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)이 없다면 얼마나 많은 판단이 차례차례 필요한지 짐작이 갑니다!