18. september 2003 - 12:56Der er
26 kommentarer og 1 løsning
fejl i søgefunktion
jeg får denne fejl i søgefunktion:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/ic/soeg.asp, line 32 ----- linie 32 ser sådan ud : Set rs = myConn.Execute(strSQL)
og er en del af denne søgefunktion:
<% ' Henter værdien fra soeg.htm strKeyword = Trim(Request.Form("Keyword"))
If Len(strKeyword) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear Response.Redirect("velkommen.htm") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT Nr, Beskrivelse FROM varer where " strSQL = strSQL & " (Nr LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Betegnelse LIKE '%" & strKeyword & "%')"
' Skaber DSNLess forbindelse til DBen strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("data/prisbog.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen response.write "<form NAME='itemsform'>" Do While Not rs.EOF %>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
nu får jeg denne fejl : Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i forespørgselsudtrykket "(Nr LIKE %GLAS%) OR (Betegnelse LIKE '%GLAS%')". /soeg.asp, line 31
ændrer du det til tekst vil det script du postede højst sandsynligt virke - til gengæld vil du ikke kunne sortere feltet på samme måde som et rigtigt tal-felt.
Vil du beholde det som et talfelt så prøv engang noget a la dette;
strSQL = "SELECT Nr, Beskrivelse FROM varer where " If isnumeric(strKeyword) = true Then strSQL = strSQL & " (Nr LIKE %" & strKeyword & "%)" End If strSQL = strSQL & " OR (Betegnelse LIKE '%" & strKeyword & "%')"
strSQL = "SELECT Nr, Beskrivelse FROM varer where " If isnumeric(strKeyword) = true Then strSQL = strSQL & " (Nr LIKE %" & strKeyword & "%) OR " End If strSQL = strSQL & " (Betegnelse LIKE '%" & strKeyword & "%')"
ok jeg har forenklet det lidt : --- <% Response.Buffer = True %> <html><head> <title>Søgeresultat</title> </head><body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" bgcolor="#50639B"> <h2 align="center"><font color="#FFFFFF">Søgeresultat på <% = request.form ("keyword") %></font></h2> <% ' Henter værdien fra soeg.htm strKeyword = Trim(Request.Form("Keyword"))
If Len(strKeyword) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear Response.Redirect("velkommen_til_shop.htm") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT Nr, Beskrivelse FROM varer where " strSQL = strSQL & " (Nr LIKE %" & strKeyword & "%)" strSQL = strSQL & " OR (Betegnelse LIKE '%" & strKeyword & "%')"
' Skaber DSNLess forbindelse til DBen strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("data/icl-prisbog.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF %> <% response.write rs("beskrivelse")%> <% rs.MoveNext Loop%> <% ' Rydder op efter os myConn.Close Set myConn = Nothing end if %> </html>
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i forespørgselsudtrykket "(Nr LIKE %gl%) OR (Betegnelse LIKE '%gl%')".
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1. /soeg.asp, line 32
Browsertype: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
Side: POST 68 bytes to /soeg.asp
POST Data: soeg=S%F8g+efter%26nbsp%3Bvare+%3CBR%3Eeller+varenummer&Keyword=glas
der er en ting jeg ikke helt forstår... til at starte med fik du fejl i linie 32 - så puttede jeg 2 ekstra linier ind på linie 21 + 32 så derfor burde din fejl være flyttet 2 pladser ned til linie 34, men du får stadig fejlen i linie 32???
fjerne de tre linier med strSQL - og indsæt i stedet;
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.