/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Data type mismatch in criteria expression
Fra : Christian M. Nielsen


Dato : 22-03-02 12:00

Jeg har fået til opgave at finde en fejl som er følgende
-----------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria
expression.
maling/ordre.asp, line 1309
-------------

i nedenstående kode.

Jeg har ledt med lys og lygte, men synes ikke at kunne finde noget der ikke
er som de skal være. Siden har kørt i mere end et år uden fejl og uden at
der er rettet noget i koden, er denne fejl pludseligt kommet. Ham der
kavede koden er ikke længere tilknyttet stedet, så jeg kan ikke få ham til
at se på det igen.

Er der nogen som ud fra nedenstående kode kan se hvad der måske kan
forårsage en fejl. Så har jeg en ide om hvad jeg skal lede efter. Linie 1309
er sidste linie inden %>

<%
Session.LCID = 1030
Session.CodePage = 1252

Dim oConn, total


Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open Session("DB")

Set oConn1 = Server.CreateObject("ADODB.Connection")
oConn1.Open Session("DB")

strSQL = "SELECT * FROM kurv WHERE (sessionid = '" & Session.SessionID &
"')"
Set oRs = oConn.Execute(strSQL)

strSQL = "SELECT * FROM kunder WHERE (kunde_id = '" & Session("iden") &
"')"
Set oRs1 = oConn1.Execute(strSQL) <--! denne linie er linie 1309-->

%>

--

Mvh / Regards

-=< Christian >=-
ICQ: 25308942
http://www.cmnielsen.dk



 
 
Janus Klok Lauritsen (22-03-2002)
Kommentar
Fra : Janus Klok Lauritsen


Dato : 22-03-02 12:19

Prøv at skifte denne linje (her under) ud med response.write(strSQL) og se
hvad du forsøger at hente i din database, så er det noget nemmere at se hvad
fejlen skyldes.
Du kan jo også prøve at sende strengen til gruppen, så kan vi kigge på det
igen.
Mvh
Janus
"Christian M. Nielsen" <christian@cmnielsen.dk> wrote in message
news:3c9b0ea6$0$1333$ba624c82@nntp02.dk.telia.net...
> Set oRs1 = oConn1.Execute(strSQL) <--! denne linie er linie 1309-->




Lars Hoffmann (22-03-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 22-03-02 14:02

Christian M. Nielsen <christian@cmnielsen.dk> escribió

> strSQL = "SELECT * FROM kunder WHERE (kunde_id = '" & Session("iden")
&
> "')"
> Set oRs1 = oConn1.Execute(strSQL) <--! denne linie er linie 1309-->

Lad mig gaette: kunde_id er en numerisk vaerdi i din database og ikke en
streng? Proev med foelgende:

strSQL = "SELECT * FROM kunder WHERE (kunde_id = " & Session("iden") &
")"
Set oRs1 = oConn1.Execute(strSQL)

Med venlig hilsen
Lars Hoffmann






Christian M. Nielsen (22-03-2002)
Kommentar
Fra : Christian M. Nielsen


Dato : 22-03-02 21:19

"Lars Hoffmann" <lars@intercambiodvd.com> wrote in message
news:a7f9uq$qki$1@newsreader.mailgate.org...
> Christian M. Nielsen <christian@cmnielsen.dk> escribió
>
> > strSQL = "SELECT * FROM kunder WHERE (kunde_id = '" & Session("iden")
> &
> > "')"
> > Set oRs1 = oConn1.Execute(strSQL) <--! denne linie er linie 1309-->
>
> Lad mig gaette: kunde_id er en numerisk vaerdi i din database og ikke en
> streng? Proev med foelgende:
>
> strSQL = "SELECT * FROM kunder WHERE (kunde_id = " & Session("iden") &
> ")"
> Set oRs1 = oConn1.Execute(strSQL)

Hej Begge to. Tak for svarene. Den løsning Lars er kommet med, virker.

Kan du evt. uddybe hjvad forskellen i dette tilfælde er og hvilken
indvirkning den har??

--

Mvh / Regards

-=< Christian >=-
ICQ: 25308942
http://www.cmnielsen.dk



Jørn Andersen (22-03-2002)
Kommentar
Fra : Jørn Andersen


Dato : 22-03-02 21:46

On Fri, 22 Mar 2002 21:18:48 +0100, "Christian M. Nielsen"
<christian@cmnielsen.dk> wrote:

>> > strSQL = "SELECT * FROM kunder WHERE (kunde_id = '" & Session("iden")
<snip>
>> Lad mig gaette: kunde_id er en numerisk vaerdi i din database og ikke en
>> streng? Proev med foelgende:
>>
>> strSQL = "SELECT * FROM kunder WHERE (kunde_id = " & Session("iden") &
>> ")"
<snip>
>Kan du evt. uddybe hjvad forskellen i dette tilfælde er og hvilken
>indvirkning den har??

Som Lars skriver: kunde_id er en numerisk vaerdi i din database og
ikke en streng

Streng-værdier skal i anførselstegn som fx:
strMyString = "en streng"
Numeriske værdier skal *ikke* i anførselstegn - fx:
intMyNumber = 37

I dit tilfælde skal du bygge en tekststreng op (strSql er en
tekststreng) af bl.a. en variabel. Hvis den variabel, du bruger, er
numerisk (eller Boole'sk osv.), skal den ikke omsluttes af
anførslestegn. Er den en tekststreng, skal den omsluttes af anf.tegn.

Det er sådan set ligetil, og bliver kun lidt kompliceret, fordi
almindelig anførselstegn jo "afslutter" tekstrengen, hvorfor man i
stedet bruger 'enkelt-anførslestegn' - hvis altså der er tale om en
tekststreng-variabel.

Som regel bliver det lidt tydeligere, hvis man udskriver SQL-strengen
ved efter den linie, hvor strSql er defineret, at indføje:
Response.Write strSql
- du vil så få returneret:

SELECT * FROM kunder WHERE (kunde_id = 37)

(hvis altså det var 37, der var din kunde_ID) - og *ikke*:

SELECT * FROM kunder WHERE (kunde_id = '37')
- som ville kræve, at kunde_ID i databasen var en tekststreng.


Håber det hjalp lidt.

Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

Christian M. Nielsen (23-03-2002)
Kommentar
Fra : Christian M. Nielsen


Dato : 23-03-02 08:18


"> Som regel bliver det lidt tydeligere, hvis man udskriver SQL-strengen
> ved efter den linie, hvor strSql er defineret, at indføje:
> Response.Write strSql
> - du vil så få returneret:
>
> SELECT * FROM kunder WHERE (kunde_id = 37)
>
> (hvis altså det var 37, der var din kunde_ID) - og *ikke*:
>
> SELECT * FROM kunder WHERE (kunde_id = '37')
> - som ville kræve, at kunde_ID i databasen var en tekststreng.
>
>
> Håber det hjalp lidt.

Tak for forklaringen. Det hjælper lidt på forståelsen, specielt med det gode
eksempel til sidst.
--

Mvh / Regards

-=< Christian >=-
ICQ: 25308942
http://www.cmnielsen.dk




Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste