Nous rencontrons souvent plusieurs problèmes de requêtes et les longues instructions SQL sèment souvent la confusion. Surtout lorsque le client remplit partiellement les conditions de la requête, il sera encore plus difficile d'utiliser des méthodes ordinaires. Ce qui suit utilise intelligemment l'identité où 1=1 (en fait il y en a beaucoup, laissez-la simplement valeur TRUE) pour résoudre ce problème. 'titre des informations sur le sujet
'société Le nom de la société qui publie les informations
'contenu contenu des informations publiées
'adresse adresse de l'entreprise
Profil de l'entreprise d'information
'noter les instructions associées
Les valeurs ci-dessus sont soumises par FORM, puis les valeurs correspondantes sont obtenues via : subject=trim(Request.Form(subject)), etc.
<%
« Cette fonction est critique ! --------------------------
Fonction sql(a,b,sqls)
if b<> then 'Si le client ne soumet pas cette valeur, l'instruction SQL correspondante ne sera pas générée.
sqls=sqls & et & a & comme '% & b & %'
finir si
sql=sql
Fonction de fin
'-----------------Appeler la base de données
Définir conn=Server.CreateObject(ADODB.Connection)
DBpath=Serveur.MapPath(/database/mydb.mdb)
Pilote Conn.Open={Pilote Microsoft Access (*.mdb)};pwd=;dbq= & DBpath
Définir rs=Server.CreateObject(ADODB.Recordset)
sqls=select * depuis ma table où 1=1
'Appelez simplement la fonction ci-dessus ci-dessous, vous pouvez l'appeler plusieurs fois (en théorie n'importe laquelle)
sqls=sql(sujet,sujet,sqls)
sqls=sql(entreprise,entreprise,sqls)
sqls=sql(contenu,contenu,sqls)
sqls=sql(adresse,adresse,sqls)
sqls=sql(informations,informations,sqls)
sqls=sql(note,note,sqls)
sqls=sqls et tri par identifiant desc
rs.open sqls,conn,3,2
%>
S'il n'y a pas de fonction clé Function sql (a, b, sqls), on peut imaginer combien de jugements sont nécessaires les uns après les autres !