Avatar billede blaatand Nybegynder
10. juni 2003 - 22:39 Der er 6 kommentarer og
1 løsning

Data type mismatch in criteria expression

<%
                            strCLANID = Request.Cookies("CupZone")("LOGINID")
                            strSQL = "SELECT * FROM T_USERS WHERE M_CLANID =" & strCLANID
                            set rs = Conn.Execute(strSQL)
                           
                            DO
                                strMEMBERNAME = rs("M_USERNAME")
                                strMEMBERID = rs("ID")
                                Response.Write ""&strMEMBERNAME&" "&strMEMBERID&""
                                rs.movenext
                            loop while not rs.eof
                        %>


Får fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

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

/cup/admin.asp, line 214


Nogle der lige spotter den? Jeg kan ikke selv lige se hvor fejlen skulle ligge... tingene er der i databasen, cookien er der, response.write på strSQL giver det det skal... uhmm
Avatar billede tuctoh Nybegynder
10. juni 2003 - 22:51 #1
strSQL = "SELECT * FROM T_USERS WHERE M_CLANID ='" & strCLANID&"'"

hvis M_CLANID er et bogstav og ikke et tal...
Avatar billede blaatand Nybegynder
10. juni 2003 - 22:54 #2
M_CLANID er et tal, det er en direkte overførsel af "ID" fra en bruger i databasen...
Avatar billede blaatand Nybegynder
10. juni 2003 - 22:55 #3
Men underligt, for det virker... jeg siger tak :)
Avatar billede hossein Nybegynder
10. juni 2003 - 22:55 #4
hvilken datatype har M_CLANID? hvis det er tal så skal du konvertere strCLANID til tal inden du sætter lige med M_CLANID:
strCLANID = Cint(Request.Cookies("CupZone")("LOGINID"))
Avatar billede tuctoh Nybegynder
10. juni 2003 - 22:57 #5
underligt :s
Det her burde da fjerne fejlen


<%
                            strCLANID = Request.Cookies("CupZone")("LOGINID")
if not isnumeric(strCLANID) then strCLANID = 0
strCLANID = strCLANID*1
                            strSQL = "SELECT * FROM T_USERS WHERE M_CLANID =" & strCLANID
                            set rs = Conn.Execute(strSQL)
                           
                            DO
                                strMEMBERNAME = rs("M_USERNAME")
                                strMEMBERID = rs("ID")
                                Response.Write ""&strMEMBERNAME&" "&strMEMBERID&""
                                rs.movenext
                            loop while not rs.eof
                        %>
Avatar billede blaatand Nybegynder
10. juni 2003 - 22:57 #6
Fandt ud af at jeg ikke havde fået sat feltet til at være et tal i databasen, men bare stod som tekst :)
Avatar billede tuctoh Nybegynder
10. juni 2003 - 23:03 #7
:)
tak for points
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