Avatar billede lightbrain Nybegynder
25. oktober 2002 - 17:20 Der er 9 kommentarer og
1 løsning

Data type mismatch in criteria expression

Hej

Jeg har noget kode, som - hvis det virkede - skulle retunere den højeste værdi i kolonnen "url_samle". Kolonnen "url_samle" er en tæller af datatypen "tekst", og det kan desværre ikke umiddelbart ændres.

Koden virker ikke, idet den retunerer "92", mens den skulle have retuneret "1600" - og det gør den fordi der er tale om datatypen "tekst". Så troede jeg, at jeg kunne indsætte en Int(), men det virkede heller ikke, for nu siger den:

"Data type mismatch in criteria expression."

______________________________________________

<%
Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
   
    strSQL = "Select Max(Int(url_samle)) AS MyUrlSamle from Search"
    set rs = myConn.execute(strSQL)
    response.write("*** " & rs("MyUrlSamle") & " ***")
%>
Avatar billede neteffect Nybegynder
25. oktober 2002 - 17:25 #1
Ikke Int, men CInt eller CLng
Avatar billede lightbrain Nybegynder
25. oktober 2002 - 17:27 #2
Ok, men hvad er forskellen på CInt og Clng?
Avatar billede neteffect Nybegynder
25. oktober 2002 - 17:31 #3
CInt kan konvertere til heltal mellem –32.768 og 32.767.

CLng kan konvertere til heltal mellem –2.147.483.648 og 2.147.483.647.
Avatar billede lightbrain Nybegynder
25. oktober 2002 - 17:36 #4
Den siger: "Invalid use of Null"

Jeg glemte måske at sige, at der også kan forekomme værdier, som er null i kolonnen. Hvordan udbygges nedenstående så?

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
   
    strSQL = "Select Max(CInt(url_samle)) AS MyUrlSamle from Search"
    set rs = myConn.execute(strSQL)
    response.write("*** " & rs("MyUrlSamle") & " ***")

    taeller = rs("MyUrlSamle") + 1
    response.write("*** " & taeller & " ***")
%>
Avatar billede neteffect Nybegynder
25. oktober 2002 - 17:56 #5
strSQL = "Select Max(Int(url_samle)) AS MyUrlSamle from Search WHERE NOT isNull(url_samle)"
Avatar billede lightbrain Nybegynder
25. oktober 2002 - 18:00 #6
Æv, den siger stadig "Data type mismatch in criteria expression", så det var altså ikke pga. nul-værdier, at fejlen kommer - jeg troede bare, at det hang sådan sammen.

Hvad kan fejlen så være?
Avatar billede lightbrain Nybegynder
25. oktober 2002 - 18:04 #7
Der var lige en lille fejl i den kode du skrev:
strSQL = "Select Max(Int(url_samle)) AS MyUrlSamle from Search WHERE NOT isNull(url_samle)"

Det skulle have været:
strSQL = "Select Max(CInt(url_samle)) AS MyUrlSamle from Search WHERE NOT isNull(url_samle)"

Men desværre siger den stadig "Data type mismatch in criteria expression"
Avatar billede neteffect Nybegynder
25. oktober 2002 - 18:09 #8
Så prøver vi isNumeric

strSQL = "Select Max(CInt(url_samle)) AS MyUrlSamle from Search WHERE isNumeric(url_samle)"

Strengt taget er det noget snavs at bruge VBscript-funktioner i SQL. Det virker kun ifm Microsoft-databaser.
Avatar billede lightbrain Nybegynder
25. oktober 2002 - 19:15 #9
Det virker! Mange tak for hjælpen :-)

Kan du ikke også kigge på:
http://www.eksperten.dk/spm/275079
http://www.eksperten.dk/spm/274190
Avatar billede neteffect Nybegynder
25. oktober 2002 - 19:34 #10
Tak for points!

http://www.eksperten.dk/spm/275079
Jeg har det med at springe spørgsmål over, hvor jeg selv skal tælle mig frem til linie 63. Hvis jeg gætter rigtigt, er det i nærheden af

  if not i > ubound(myarray) then

En parentes omkring sammenligningen vil fjerne min tvivl om, hvad der evalueres først
  if not (i > ubound(myarray)) then

Ellers ville jeg lægge nogle response.write i & "<br>" ind omkring det sted hvor fejlen kommer, for at se hvad der foregår.


http://www.eksperten.dk/spm/274190
Her efterlyser du programmeringskalorier, og det lader jeg andre om at gøre for points alene. Andet ville det være "bad for business".

- Christian
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