/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Søge i database
Fra : Michael Kjeldsen


Dato : 21-04-01 16:42

Jeg er ved at lave et IT-projekt i skolen, og arbejder på en søgefunktion
der skal søge i en database via asp.

Det skal lige siges, at jeg ikke er specielt hård til asp!

Nå, men når jeg indtaster et navn i søgefeltet, skriver den dette:


SELECT * FROM fugle WHERE navn LIKE '*tillergøj*'
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/soeg.asp, linje 71


hmm... hvad er der galt?


indhold af asp-filen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Eksamensprojekt 2001</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3">
<LINK HREF="style.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY>

<%

Set MinConn=Server.CreateObject("ADODB.Connection")
MinConn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("fugletest.mdb")

submit=request.form("submit")
navn=request.form("navn")
navn1=request.form("navn1")
farve=request.form("farve")
stoerrelse=request.form("stoerrelse")
slaegt=request.form("slaegt")

IF submit="- Send -" THEN

sql="SELECT * FROM fugle "

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
OR NOT stoerrelse="INTET" OR NOT slaegt="INTET" THEN
sql= sql + "WHERE "
END IF

IF NOT navn1="" AND NOT navn1="Indtast navn her..." then
sql= sql + "navn LIKE '*" + navn1 + "*' "
END IF

if NOT farve="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") THEN
sql= sql + "AND "
END IF
sql= sql + "farve='" + farve + "' "

end if

if NOT stoerrelse="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
THEN
sql= sql + "AND "
END IF
sql= sql + "stoerrelse='" + stoerrelse + "' "

end if

if NOT slaegt="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
OR NOT stoerrelse="INTET" THEN
sql= sql + "AND "
END IF
sql= sql + "slaegt='" + slaegt + "' "
end if
%>
<%=sql%>
<%

Set Rs=Server.CreateObject("ADODB.RecordSet")


Set Rs=MinConn.Execute(sql)

END IF
%>

<FORM METHOD="POST" NAME="soeg">

<SELECT NAME="navn">
<OPTION>Dansk navn
<OPTION>Latinsk navn
</SELECT><BR>
<INPUT TYPE="text" VALUE="Indtast navn her..." SIZE="20" NAME="navn1"
onfocus="document.soeg.navn1.value=''"><P>

Farve:
<SELECT NAME="farve">
<OPTION value="INTET">
<OPTION value="guld">guld
<OPTION value="tomatblå">tomatblå
<OPTION value="rågrøn">rågrøn
<OPTION value="mælkerød">mælkerød
<OPTION value="pink">pink
</SELECT>
<P>

Størrelse:
<SELECT NAME="stoerrelse">
<OPTION value="INTET">
<OPTION value="10-12">10 -> 12
<OPTION value="12-14">12 -> 14
<OPTION value="14-16">14 -> 16
<OPTION value="16-18">16 -> 18
<OPTION value="18-20">18 -> 20
</SELECT>
<P>

Slægt:
<SELECT NAME="slaegt">
<OPTION value="INTET">
<OPTION value="fuckfugle">Fuckfugle
<OPTION value="pattedyr">Pattedyr
</SELECT>
<P>

<INPUT TYPE="submit" VALUE="- Send -" NAME="submit"> <INPUT TYPE="reset"
VALUE="- Reset -" NAME="reset">

</FORM>


</BODY>
</HTML>
--



_____________________
Michael Kjeldsen

mail@kjeldsen2000.com
www.kjeldsen2000.com



 
 
Jesper Nielsen (21-04-2001)
Kommentar
Fra : Jesper Nielsen


Dato : 21-04-01 17:27

> SELECT * FROM fugle WHERE navn LIKE '*tillergøj*'

Det skal være:
SELECT * FROM fugle WHERE navn LIKE '%tillergøj%'

/jesper/



Michael Kjeldsen (21-04-2001)
Kommentar
Fra : Michael Kjeldsen


Dato : 21-04-01 17:43

> Det skal være:
> SELECT * FROM fugle WHERE navn LIKE '%tillergøj%'

så skriver den bare:

SELECT * FROM fugle WHERE navn LIKE '%tillergøj%'
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/soeg.asp, linje 71
--



_____________________
Michael Kjeldsen

mail@kjeldsen2000.com
www.kjeldsen2000.com








Jesper Nielsen (21-04-2001)
Kommentar
Fra : Jesper Nielsen


Dato : 21-04-01 18:43

> SELECT * FROM fugle WHERE navn LIKE '%tillergøj%'
> Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'
>
> [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
>
> /soeg.asp, linje 71

Hvordan ser resten af koden ud?

Et eksempel kunne være:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnect
SQL = "SELECT * FROM tabel WHERE Username LIKE '%" & strSearch & "%';"
Qry = Conn.Execute(SQL)
If Not Qry.EOF Then
While Not Qry.EOF
Response.Write(Qry("Username") & vbCrLf & "<br>" & vbCrLf)
Qry.MoveNext
Wend
Else
Response.Write("Sorry, no matches found. Please try again" & vbCrLf)
End If
Conn.Close
Set Conn = Nothing



Michael Kjeldsen (21-04-2001)
Kommentar
Fra : Michael Kjeldsen


Dato : 21-04-01 21:31


"Jesper Nielsen" <jn@nielsenit.dk> skrev i en meddelelse
news:BEjE6.52349$o4.4295553@news010.worldonline.dk...

> Hvordan ser resten af koden ud?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Eksamensprojekt 2001</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3">
<LINK HREF="style.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY>

<%

Set MinConn=Server.CreateObject("ADODB.Connection")
MinConn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("fugletest.mdb")

submit=request.form("submit")
navn=request.form("navn")
navn1=request.form("navn1")
farve=request.form("farve")
stoerrelse=request.form("stoerrelse")
slaegt=request.form("slaegt")

IF submit="- Send -" THEN

sql="SELECT * FROM fugle "

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
OR NOT stoerrelse="INTET" OR NOT slaegt="INTET" THEN
sql= sql + "WHERE "
END IF

IF NOT navn1="" AND NOT navn1="Indtast navn her..." then
sql= sql + "navn LIKE '*" + navn1 + "*' "
END IF

if NOT farve="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") THEN
sql= sql + "AND "
END IF
sql= sql + "farve='" + farve + "' "

end if

if NOT stoerrelse="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
THEN
sql= sql + "AND "
END IF
sql= sql + "stoerrelse='" + stoerrelse + "' "

end if

if NOT slaegt="INTET" then

IF (NOT navn1="" AND NOT navn1="Indtast navn her...") OR NOT farve="INTET"
OR NOT stoerrelse="INTET" THEN
sql= sql + "AND "
END IF
sql= sql + "slaegt='" + slaegt + "' "
end if
%>
<%=sql%>
<%

Set Rs=Server.CreateObject("ADODB.RecordSet")


Set Rs=MinConn.Execute(sql)

END IF
%>

<FORM METHOD="POST" NAME="soeg">

<SELECT NAME="navn">
<OPTION>Dansk navn
<OPTION>Latinsk navn
</SELECT><BR>
<INPUT TYPE="text" VALUE="Indtast navn her..." SIZE="20" NAME="navn1"
onfocus="document.soeg.navn1.value=''"><P>

Farve:
<SELECT NAME="farve">
<OPTION value="INTET">
<OPTION value="guld">guld
<OPTION value="tomatblå">tomatblå
<OPTION value="rågrøn">rågrøn
<OPTION value="mælkerød">mælkerød
<OPTION value="pink">pink
</SELECT>
<P>

Størrelse:
<SELECT NAME="stoerrelse">
<OPTION value="INTET">
<OPTION value="10-12">10 -> 12
<OPTION value="12-14">12 -> 14
<OPTION value="14-16">14 -> 16
<OPTION value="16-18">16 -> 18
<OPTION value="18-20">18 -> 20
</SELECT>
<P>

Slægt:
<SELECT NAME="slaegt">
<OPTION value="INTET">
<OPTION value="fuckfugle">Fuckfugle
<OPTION value="pattedyr">Pattedyr
</SELECT>
<P>

<INPUT TYPE="submit" VALUE="- Send -" NAME="submit"> <INPUT TYPE="reset"
VALUE="- Reset -" NAME="reset">

</FORM>


</BODY>
</HTML>
--



_____________________
Michael Kjeldsen

mail@kjeldsen2000.com
www.kjeldsen2000.com



Jakob Andersen (21-04-2001)
Kommentar
Fra : Jakob Andersen


Dato : 21-04-01 22:10

"Michael Kjeldsen" <mkjeldsen@mail1.stofanet.dk> wrote
> sql="SELECT * FROM fugle "

Det er altid godt at undgå SELECT * da databasen måske skal ændres engang i
fremtiden.

> sql= sql + "navn LIKE '*" + navn1 + "*' "

SQL wildcarded når man bruger Access er ikke * men %

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408866
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste