複数のクエリの問題が頻繁に発生し、長い SQL ステートメントが人々を混乱させることがよくあります。特に、クライアントがクエリ条件を部分的に入力する場合、通常の方法を使用することはさらに困難になります。 次の例では、1=1 の恒等式 (実際にはたくさんありますが、値を TRUE にするだけです) を巧みに使用して、この問題を解決しています。 '件名情報タイトル
'company 情報を公開している会社の名前
「掲載情報の内容」
'住所 会社の住所
'infomation 会社概要
'関連する指示に注意してください
上記の値は FORM によって送信され、対応する値は subject=trim(Request.Form(subject)) などを通じて取得されます。
<%
「この機能は重要です!」 ------------------------
関数 sql(a,b,sqls)
if b<> then 'クライアントがこの値を送信しない場合、対応する SQL ステートメントは生成されません。
sqls=sqls & and & a & like '% & b & %'
終了する場合
SQL=SQL
終了機能
'----------------データベースを呼び出す
conn=Server.CreateObject(ADODB.Connection) を設定します。
DBpath=Server.MapPath(/database/mydb.mdb)
Conn.Open driver={Microsoft Access Driver (*.mdb)};pwd=;dbq= & DBpath
rs=Server.CreateObject(ADODB.Recordset) を設定します。
sqls=select * from mytable where 1=1
'上記の関数を以下で呼び出すだけで、何度でも (理論的には何度でも) 呼び出すことができます。
sqls=sql(件名,件名,SQL)
sqls=sql(会社,会社,sqls)
sqls=sql(コンテンツ,コンテンツ,SQL)
sqls=sql(アドレス,アドレス,SQL)
sqls=sql(情報,情報,SQL)
sqls=sql(note,note,sqls)
sqls=sqls & ID 説明による順序付け
rs.open SQL、conn、3、2
%>
キー関数 Function sql (a, b, sqls) がなければ、どれだけ多くの判断が次々に必要になるか想像できます。