Vad är det för fel på SQL-satsen? Ser inget fel i din SQL-sats, jag tror att felet ligger på raden där frågan exekveras, hur ser den ut (är det rad 138?)? Vid felsökning likt detta finns några enkla tips: Så här ser det ut.. SQL-editor..? Nu blev jag lite nyfiken. Jag har letat begriplig info om olika sätt att komponera SQL-satser utan att lyckas så bra. Finns det andra sätt att "testa" SQL-satser än att tolka felmeddelanden i webbläsaren? Det där med SQL-editor låter intressant. Oftast sitter jag och testar i timmar utan någon bra dokumentation. När jag sedan ger upp och slänger in ett meddelande på Pellesoft så tar det några minuter sedan ligger det ett lysande svar i tråden. Jag vill KUNNA SJÄLV!! ;) Kolla med att skriva ut din SQL sats, det kan vara så att något fält blir tomt. Nu ser koden ut så här.. Hej Så här kan du inte göra för att kolla strängen: Japp, alla variabler är deklarerade, måste vara nåt annat som jävlas.. Du har stavat fel till ett av fälten. Kontrollera namnen mot Anvandare tabellen. Kanske skall vara FörNamn istället för bara Namn. Om man läser om Access databas error så står det följande:SQL-sats i ASP
SQL = "Select TOP 50 * FROM Anvandare WHERE Namn LIKE '" & Namn1 & "' AND Efternamn LIKE '" & Efternamn1 & "' ORDER BY Namn asc"
Felmedelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/Projekt/circle/sokmedlem.asp, line 138Sv: SQL-sats i ASP
/JohanSv: SQL-sats i ASP
1. Du har angett att sql-satsen är SQL. Då kan du skriva ut den och testa i någon SQL-editor och se om det verkligen fungerar:
Response.Write SQL
Response.End
2. I ditt fall använder du LIKE. För att få ett namn med like skall man använda % tecken före, efter eller båda varianterna. Ex: %olsson%
3. Du kanske inte skickar in både efternamn och förnamn, då blir SQL fundersam. Du kanske måste använda en if-sats här för att bygga sql-satsen med en eller 2 LIKE satser.
/PelleSv: SQL-sats i ASP
Namn1 = "%" & Request.Form("Namn") & "%"
Efternamn1 = "%" & Request.Form("Efternamn") & "%"
SQL = "Select TOP 50 * FROM Anvandare WHERE Namn LIKE '" & Namn1 & "' AND Efternamn LIKE '" & Efternamn1 & "' ORDER BY Namn asc"
MinCon.open db
rs.open SQL, MinCon, adOpenStatic, adLockOptimisticSv: SQL-sats i ASP
Sv: SQL-sats i ASP
Jag skulle göra en felkontroll, både med Javascript på klientsidan och med asp på serversidan.
Namn1 = "%" & Request.Form("Namn") & "%"
IF Namn1 = "" THEN
strError = "true"
END IF
IF Efternamn1 = "" THEN
strError = "true"
END IF
IF strError = "true"
Resposne.Write "Något fält är inte rätt ifyllt"
ELSE
kör din SQL sats.
END IF
Anna-KarinSv: SQL-sats i ASP
Namn1 = "%" & Request.Form("Namn") & "%"
Efternamn1 = "%" & Request.Form("Efternamn") & "%"
IF Namn1 = "" THEN
strError = "true"
END IF
IF Efternamn1 = "" THEN
strError = "true"
END IF
IF strError = "true" then
Resposne.Write "Något fält är inte rätt ifyllt"
ELSE
SQL = "Select TOP 50 * FROM Anvandare WHERE Namn LIKE '" & Namn1 & "' AND Efternamn LIKE '" & Efternamn1 & "' ORDER BY Namn asc"
MinCon.open db
rs.open SQL, MinCon, adOpenStatic, adLockOptimistic
END IF
Men får ändå detta felmedelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/Projekt/circle/sokmedlem.asp, line 149Sv: SQL-sats i ASP
Testa att söka ut TOP 50 Namn, * om det är så att TOP vill ha ett värde.
Kan vara det som spökar, fast jag kan vara ute på djupt vatten, var ett tag sedan som jag pillade med TOP i SQL
Anna-KarinSv: SQL-sats i ASP
Efternamn1 = "%" & Request.Form("Efternamn") & "%"
IF Namn1 = "" THEN
strError = "true"
END IF
IF Efternamn1 = "" THEN
strError = "true"
END IF
Eftersom du läser in %-tecken i Efternamn1 kommer den aldrig att vara tom.
Testa att lägga till %-tecknen i sql-frågan istället:
SQL = "Select TOP 50 * FROM Anvandare WHERE Namn LIKE '%" & Namn1 & "%' AND Efternamn LIKE '%" & Efternamn1 & "%' ORDER BY Namn asc"Sv: SQL-sats i ASP
Det är sånt här man blir så himla trött på :/Sv: SQL-sats i ASP
Sv: SQL-sats i ASP
Too few parameters. Expected 1
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
This error occurs only with Microsoft Access when one of the field names used in a select statement does not exist in the table being queried.
Check that your SQL query is correct and that you have not misspelled any of the field names in your select statement and that the field name exists in the table being queried.