On 29 Jul 2008 18:17:10 GMT, Lasse Hansen <lkgh@mail.dk> wrote:
>Er ved at lave et asp script, som skal hente nogle informationer.
>Disse informationer skal opfylde tre krav for at blive vist.
>
>Den sputter følgende fejl ud:
>Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
>[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in
>criteria expression.
>/DBtid/vis_person.asp, line 54
>
>Så fejlen skulle ligge i:
>strSQL = "Select * from Tider WHERE nummer = 1 AND simsettnr= 12
>AND IDnummer2 =" & Request.Querystring("ID")
>
>Tror det er fordi man ikke kan bruge AND to gange
Det er der ikke noget i vejen for.
>men ved ikke
>ellers hvordan man skal have flere kriterier med. Nogen der kan
>hjælpe med det?
Det første man skal gøre, når man har fejl i en "genereret" SQL-streng
er at skrive den ud. Efter:
strSql = ...
indsætter du:
Response.Write strSql
Response.End
Den første linie udskriver SQL-strengen.
Den anden linie stopper eksekveringen af scriptet, så du ikke bliver
stoppet af den efterfølgende fejlmeddelelse.
Nu kan du se din SQL-strengen. Hvis ikke fejlen er umiddelbart synlig,
så kan du prøve at indsætte SQL-strengen som forespørgsel i din
Access-database.
Men når der står "Data type mismatch" i fejlmeddelelsen, ville jeg kigge
på, om alle de tre data-felter i WHERE-delen er tal-felter - hvis ikke,
skal der anførselstegn om værdien - fx:
.... simsettnr = '12' AND ...
eller:
.... IDnummer2 = '" & Request.Querystring("ID") & "'"
Når du har fået det til at virke, bør du tage et kig på sikkerhed
omkring SQL (SQL-injektion):
<url:
http://www.asp-faq.dk/article/?id=95>
Good luck!
--
Jørn Andersen,
Brønshøj