Мы часто сталкиваемся с проблемами множественных запросов, а длинные операторы SQL часто сбивают людей с толку. Особенно когда клиент частично заполняет условия запроса, использовать обычные методы будет еще сложнее. Следующий пример умело использует тождество, где 1=1 (на самом деле их много, просто пусть оно имеет значение TRUE) для решения этой проблемы. 'заголовок информации о теме
'company Название компании, публикующей информацию
'содержание опубликованной информации
'адрес адрес компании
'информация Профиль компании
'примечание, связанное с инструкциями
Вышеуказанные значения отправляются посредством FORM, а затем соответствующие значения получаются через: subject=trim(Request.Form(subject)) и т.д.
<%
«Эта функция имеет решающее значение! --------------------------
Функция sql(a,b,sqls)
if b<> then 'Если клиент не отправит это значение, соответствующий оператор SQL не будет сгенерирован.
sqls=sqls & и & a & типа '% & b & %'
конец, если
sql=sqls
Конечная функция
'-----------------Вызов базы данных
Установите 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 * из моей таблицы, где 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), можно представить, сколько суждений нужно одно за другим!