Avatar billede ban_me Nybegynder
13. maj 2005 - 17:00 Der er 15 kommentarer og
1 løsning

Problemer med udtræk.

Da jeg ikke er så dygtig til at trække felter ud fra flere tabeller i et SQL statement, skal jeg lige bruge noget hjælp nu.
Linje 224 er mit SQL statement. Nogle der kan hjælpe ?

Fejl:
---
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

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

/temp/pages/frontpage.asp, line 224


Sourcecode:
---
            <%

   
    SQL = "SELECT TOP 1 replys_id, replys_topic, format(replys_addeddate,'dd.mm.yyyy') as datestr, replys_addedtime, topic_title, topic_id, fora FROM forareplys, foratopics WHERE replys_topic = topic_title ORDER BY replys_id DESC;"
    set RS = conn.execute(SQL)
   
    if rs.eof then
   
    response.write("<font color='#BCBCBC'>Ingen svar i databasen!</font>")
   
    else
   
    do while not rs.eof
   
    topic_titlestr = left(RS("topic_title"),55) & "..."
    datestr = replace(RS("datestr"),"-","/")
 
    response.write("Skrevet " & datestr & " kl. " & formatdatetime(RS("replys_addedtime"),4) & " <br>")
    response.write("I: ""<a href='?page=10&mode=showtopic&fora="&RS("fora")&"&topic="&RS("topic_id")&"'>"& RS("replys_topic") & "</a>")
   
    rs.movenext
    loop
    end if

         
            %>
Avatar billede busschou Praktikant
13. maj 2005 - 17:44 #1
hvilken linje er 224?
Avatar billede busschou Praktikant
13. maj 2005 - 17:48 #2
hvis det er din sql.. så prøv skrive den ud inden den executer..altså
--
response.write SQL
set RS = conn.execute(SQL)
--
og læg udskriften herind
Avatar billede ban_me Nybegynder
13. maj 2005 - 17:53 #3
Så ser den sådan her ud:
---
SELECT TOP 1 replys_id, replys_topic, format(replys_addeddate,'dd.mm.yyyy') as datestr, replys_addedtime, topic_title, topic_id, fora FROM forareplys, foratopics WHERE replys_topic = topic_title ORDER BY replys_id DESC;

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

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

/temp/pages/frontpage.asp, line 225
Avatar billede busschou Praktikant
13. maj 2005 - 17:56 #4
hmm er det måske fordi du skal skrive hvilken tabel du hiver hvilke værdier fra...altså ala
SQL = "SELECT TOP 1 forareplys.replys_id, forareplys.replys_topic, format(forareplys.replys_addeddate,'dd.mm.yyyy') as datestr, forareplys.replys_addedtime, foratopics.topic_title, foratopics.topic_id, foratopics.fora FROM forareplys, foratopics WHERE forareplys.replys_topic = foratopics.topic_title ORDER BY forareplys.replys_id DESC"
Avatar billede busschou Praktikant
13. maj 2005 - 18:02 #5
ellers betyder "mismatch" vel at der forsøges sammenligne på forskellige datatyper
De eneste steder det kan gå galt som jeg ser det er enten i
format(replys_addeddate,'dd.mm.yyyy')
eller
replys_topic = topic_title
Avatar billede busschou Praktikant
13. maj 2005 - 18:09 #6
Efter lidt søgen på nettet så virker det som om det er en fejl som typisk er behæftet med date/time, hvis disse er tomme
Er du sikker på at replys_addeddate ikke kan være tom ?.. for så kunne det være derfor
Avatar billede ban_me Nybegynder
13. maj 2005 - 21:51 #7
Jeg kan virkelig ikke se hvad der er galt. Har nu prøvet at fjerne min udtrækning af datoen, men til ingen nytte. Ingen af mine felter er heller ikke tomme. Min kode ser nu sådan her ud, da jeg har omdøbt felterne i databasen:
---
SQL = "SELECT TOP 1 topic_id, topic_title, addeddate, addedtime FROM foratopics ORDER BY addeddate DESC;"
    set RS = conn.execute(SQL)
   
    if rs.eof then
   
    response.write("<font color='#BCBCBC'>Ingen emner i databasen!</font>")
   
    else
   
    do while not rs.eof
   
    topic_titlestr = left(RS("topic_title"),55) & "..."
 
    Response.Write("<a href='?page=11&mode=" & RS("topic_id") & "'>" & topic_titlestr & "</a>")
   
    rs.movenext
    loop
    end if
Avatar billede ban_me Nybegynder
13. maj 2005 - 21:52 #8
HOV - det var forkert kode. Den rigtige kommer her:
---
    SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,'dd.mm.yyyy') as datestr, forareplys.addedtime, foratopics.title, foratopics.id, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.title ORDER BY forareplys.id DESC;"
    set RS = conn.execute(SQL)
   
    if rs.eof then
   
    response.write("<font color='#BCBCBC'>Ingen svar i databasen!</font>")
   
    else
   
    do while not rs.eof
   
    topic_titlestr = left(RS("foratopics.title"),55) & "..."
    datestr = replace(RS("datestr"),"-","/")
 
    response.write("Skrevet " & datestr & " kl. " & formatdatetime(RS("forareplys.addedtime"),4) & " <br>")
    response.write("I: ""<a href='?page=10&mode=showtopic&fora="&RS("foratopics.fora")&"&topic="&RS("foratopics.id")&"'>"& RS("forareplys.topic") & "</a>")
   
rs.movenext
    loop
    end if
Avatar billede busschou Praktikant
13. maj 2005 - 21:54 #9
hmm det er ikke det semikolon til sidst? bare et skud i tågen for det har jeg aldrig selv med
Avatar billede ban_me Nybegynder
13. maj 2005 - 21:58 #10
Man bruger vidst semikolon hvis man skal angive en værdi til enten DESC eller ASC, som f.eks. DESC limit 0.8

Men det er jo ikke aktuelt når jeg bruger access. Det er kun ved brug af MYSQL databaser.

Anyway. Det gør ingen forskel at jeg fjerner det
Avatar billede busschou Praktikant
13. maj 2005 - 22:00 #11
jeg ved ikke om det er mig, men jeg kan ikke rigtig finde noget om "format" på nettet
Har du prøvet at fjerne den og hvis ja giver det så stadig samme fejl
Altså
SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, forareplys.addedtime, foratopics.title, foratopics.id, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.title ORDER BY forareplys.id DESC"
--
bare for at lure om det er den der gør det
Avatar billede ban_me Nybegynder
13. maj 2005 - 22:08 #12
NEj det gør ingen forskel.
Bruger også format i mange af mine andre udtræk!
Avatar billede busschou Praktikant
13. maj 2005 - 22:12 #13
oki sorry.. så giver jeg op
Avatar billede ban_me Nybegynder
13. maj 2005 - 22:40 #14
Nu er jeg kommet lidt længere. Nu melder den en anden fejl:
---
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/temp/pages/frontpage.asp, line 235

Min Source kode ser sådan her ud. Og Linje 235 er den første linje hvor jeg erklærer titlestr:
---
<%
           
    SQL = "SELECT TOP 1 foratopics.id, foratopics.title, foratopics.addeddate, foratopics.addedtime FROM foratopics ORDER BY foratopics.id DESC;"
    set RS = conn.execute(SQL)
   
    if rs.eof then
   
    response.write("<font color='#BCBCBC'>Ingen emner i databasen!</font>")
   
    else
   
    do while not rs.eof
   
    titlestr = left(RS("foratopics.title"),55) & "..."
 
    Response.Write("<a href='?page=11&mode=" & RS("foratopics.id") & "'>" & titlestr & "</a>")
   
    rs.movenext
    loop
    end if

         
            %>
            <br>
            <%

   
    SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,'dd.mm.yyyy') as datestr, forareplys.addedtime, foratopics.title, foratopics.id, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.title ORDER BY forareplys.id DESC;"
    set RS = conn.execute(SQL)
   
    if rs.eof then
   
    response.write("<font color='#BCBCBC'>Ingen svar i databasen!</font>")
   
    else
   
    do while not rs.eof
   
    titlestr = left(RS("foratopics.title"),55) & "..."
    datestr = replace(RS("datestr"),"-","/")
 
    response.write("Skrevet " & datestr & " kl. " & formatdatetime(RS("forareplys.addedtime"),4) & " <br>")
    response.write("I: ""<a href='?page=10&mode=showtopic&fora="&RS("foratopics.fora")&"&topic="&RS("foratopics.id")&"'>"& titlestr & "</a>")
   
rs.movenext
    loop
    end if

         
            %>
Avatar billede busschou Praktikant
13. maj 2005 - 22:43 #15
den skal bare hedde
titlestr = left(RS("title"),55) & "..."
det er kun i sql koden at tabel navnet skal hæftes på:o)
Avatar billede ban_me Nybegynder
14. maj 2005 - 19:35 #16
Har fundet ud af problemet. Altså hvorfor der var en mismatch.

Og det var fordi at der skal ' tegn rundt om de felter i WHERE hvor det er en tal værdi
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