freddssiteMedlem sedan maj 2001128 inlägg
Varför får jag detta fel...
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
när jag söker på ett efternamn, fungerar på att söka på de andra...
Where efternamn = '" & Request.Form("sokord") & "' or personnummer = '" & Request.Form("sokord") & "' or id = " & Request.Form("sokord") & ""
@ndersMedlem sedan juni 200026 914 inlägg
Om ID är numeriskt kan du inte jämföra det med något som inte är ett tal.
Skriv ut färdig SQL-fråga så kan du se varför saker och ting inte funkar.
jonneMedlem sedan jan. 20011 097 inlägg
Skriv ut din SQL sats med response.write så du ser att du verkligen får med de värden du vill.
freddssiteMedlem sedan maj 2001128 inlägg
man kan söka på id eller personnummer, men inte på efternamnet!
J.N.Medlem sedan apr. 20031 660 inlägg
HEJ!
Söker du på exakt hela efternamnet?
'Nilsson' ger träff, 'son' ger inga?
Du bör använda LIKE istället för lika med, eftersom det är sträng, men också, viktigast, stoppa % runt värdena, fungerar som *.
Då får du träff på alla son-namn enligt ovanstående exempel.
... efternamn LIKE '%" & innehallsok & "%'
En bättre rubrik hade inte skadat!
@ndersMedlem sedan juni 200026 914 inlägg
@nders skrev:
Om ID är numeriskt kan du inte jämföra det med något som inte är ett tal.
Är ID numeriskt?
fredrikMedlem sedan dec. 19991 082 inlägg
...förlåt om jag går lite "Off Topic" men vill bara höja ett varningensfinger när jag ser din kod:
"...Where efternamn = '" & Request.Form("sokord")..."
som är helt öppen för SQL-injection. Kort innebär det att någon skulle kunna skriva egen SQL-kod som kör egna frågor mot din databas. Enklaste skyddet är att kontrollera '-tecknet, men att använda parameteriserade frågor är att föredra.
Läs gärna mer om säkerhetsrelaterade ämnen på swesecure.com och särskilt om SQL-injection på:
http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=29a58b01-ca79-4877-b924-4f5da18d4a2a
Engine^Medlem sedan dec. 20002 861 inlägg
Re: sql?
freddssite skrev:
Varför får jag detta fel...
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
när jag söker på ett efternamn, fungerar på att söka på de andra...
Where efternamn = '" & Request.Form("sokord") & "' or personnummer = '" & Request.Form("sokord") & "' or id = " & Request.Form("sokord") & ""
Därför att du i en funktion, som du har inbakad i din fråga, saknar ett argument. Om det ingår data från tabellen som är Null kan du nog (eftersom du kör Access) komma undan med att köra Tools » Database Utilities » Compact and Repair Database...
För övrigt föreslår jag att du läser igenom föregående svar noga.