Avatar billede jetkat Nybegynder
21. august 2003 - 09:41 Der er 9 kommentarer og
1 løsning

Syntaks fejl i mit ASP script

Når jeg linker til en nyhed fra min Access database får jeg følgende fejl:

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

Sådan linker jeg:
response.write "<TD width=100% ><font style='font-family:verdana; font-size:8 pt; color:#800000; font-weight:bold;'>" & "<a target=prodframe href=""newsprodframe.asp?ID=" & ID & """>" & rsForside("dato") & " - " & rsForside("overskrift") & "</a>" & vbCrLf  & "</font>"

Her er mit ASP-script som melder fejl:
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/nyheder.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN
strSQL = "Select * From nyheder WHERE (ID='::ID::')"
set rsForside = myCon.execute(strSQL) ' con er din connection til databasen

overskrift=rsForside("overskrift")
tekst=rsforside("tekst")
response.write "<TR width=100% >"
response.write "<TD width=100% ><font style='font-family:verdana; font-size:8 pt; color:#800000; font-weight:bold;'>" & rsForside("dato") & " - " & rsForside("overskrift") & vbCrLf  & "</font>"
response.write "<BR>"
response.write "<font style='font-family:verdana; font-size:8 pt; color:#000000;'>" & LEFT(Replace(("" & tekst & ""),vbCrLf,"<br>"),200) & "..." & vbCrLf  & "</font>"
response.write "<BR>"
%>

Jeg tror det er denne linje som er problemet:
strSQL = "Select * From nyheder WHERE (ID='::ID::')"
Avatar billede ellebaek Nybegynder
21. august 2003 - 09:43 #1
strSQL = "Select * From nyheder WHERE ID='::ID::'"

Hvad indeholder din id-tabel..?
Avatar billede ellebaek Nybegynder
21. august 2003 - 09:44 #2
skal den egentlig ikke se sådan her ud...

strSQL = "Select * from nyheder where ID = " & Cint(request.querystring("id"))
Avatar billede mm12010 Nybegynder
21. august 2003 - 09:46 #3
eller:

strSQL = "Select * From nyheder WHERE ID='"&request.querystring("id")&"'"

hvis ID er et txtfelt
Avatar billede ellebaek Nybegynder
21. august 2003 - 09:47 #4
præcis...
Avatar billede stampehansen Nybegynder
21. august 2003 - 10:09 #5
Ingen grund til at bruge Cint da denne funktion caster til en integer, men som blot bliver castet tilbage til en string med & operatoren. Så blot

strSQL = "Select * from nyheder where ID = " & request.querystring("id")

I så fremt at jetkat har kodet sin DB korrekt og ikke valgt strings som identities :)
Avatar billede jetkat Nybegynder
21. august 2003 - 10:57 #6
Stampehansens svar fungerer som det eneste, tak skal du have. Smid et svar - så skal du få dine points.
Avatar billede ellebaek Nybegynder
21. august 2003 - 10:58 #7
det er lige meget om der står CInt eller ej...

Mit svar fungere lige som hans, hvis der er tale om et talfelt..!
Avatar billede stampehansen Nybegynder
22. august 2003 - 15:08 #8
Her er det :)
Avatar billede stampehansen Nybegynder
22. august 2003 - 15:10 #9
Og neh ellebaek. Dir svar er ikke lige som mit, du kan bare ikke se forskel jvf. min tidligere kommentar.
Avatar billede ellebaek Nybegynder
22. august 2003 - 19:16 #10
Stampehansen...?

Må jeg spørge dig om du har prøvet det, altså om der står CInt eller ej..?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester