15. august 2005 - 16:07Der er
10 kommentarer og 1 løsning
Form med søgefunktion fejler
Nedenstående SQL virker ikke. Jeg har en form med 4 søgefelter men når jeg loader siden og alle felterne i princippet er tomme kommer der ikke noget resultat - her burde den vise alle posterne fra tabellen. Det virker hvis jeg fjerner alt på nær IDclaim og DateOfDamage så det må være i name og/eller registrationno at fejlen opstår. Jeg kan bare ikke gennemskue hvor fejlen er.
"SELECT * FROM dbo.tblClaims WHERE (IDclaim LIKE '%" & Request.Form("claim") & "%') AND (DateOfDamage = '" & ConvertToSqlDate(Request.Form("dateofdamage")) & "') AND (cDriverName LIKE '" + Request.Form("name") + "' OR cOwnerName LIKE '" + Request.Form("name") + "' OR iDriverName LIKE '" + Request.Form("name") + "' OR iOwnerName LIKE '" + Request.Form("name") + "') AND (cRegistrationno LIKE '" + Request.Form("registrationno") + "' OR iRegistrationno LIKE '" + Request.Form("registrationno") + "')"
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
det kan jo skyldes at der går kuk i din Like, for hvad er Like '' Jeg plejer selv at lave en sql hvis feltet er udfyldt og en anden hvis det ikke er Hvis det ikke er udfyldt så undlader du blot din like
jeg ved ikke om din claim også er tom, men det kan være den går godt fordi det så bliver Like '%%' hvilket måske så matcher alt, men Like '' matcher ingenting og i og med du bruger And så kræves der mindst et match -- Så jeg vil foreslå dig at bygge din sql dynamisk op ala if request.form("name") <> "" then sql = sql & "and like blabla" else sql = noget andet end if hvis du kan se pointen ;o)
SQL = "SELECT * FROM dbo.tblClaims WHERE (IDclaim LIKE '%" & Request.Form("claim") & "%')" If Request.Form("dateofdamage")<>"" Then SQL = SQL & " AND (DateOfDamage = '" & ConvertToSqlDate(Request.Form("dateofdamage")) & "')" If Request.Form("name")<>"" Then SQL = SQL & " AND (cDriverName LIKE '" + Request.Form("name") + "' OR cOwnerName LIKE '" + Request.Form("name") + "' OR iDriverName LIKE '" + Request.Form("name") + "' OR iOwnerName LIKE '" + Request.Form("name") + "')" If Request.Form("registrationno")<>"" Then SQL = SQL & " AND (cRegistrationno LIKE '" + Request.Form("registrationno") + "' OR iRegistrationno LIKE '" + Request.Form("registrationno") + "')" SQL = SQL & " ORDER BY IDclaim ASC" End if End if End if
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.