Avatar billede ban_me Nybegynder
14. maj 2005 - 20:30 Der er 48 kommentarer og
2 løsninger

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

Hi,

Har virkelig brug for hjælp, for er ved at få grå hår over dette her.

Jeg får følgende fejl på min side:
http://www.helsingorminiz.dk/temp/

Min database ser sådan her ud:

Foratopics:
id = autonummering
fora = tal
addeddate = klokkeslet
addedtime = date og klokkeslet
title = notal

forareplys:
id = autonummering
addeddate = klokkeslet
addedtime = date og klokkeslet
topic = tal

Min Kode:
---
SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,dd.mm.yyyy) as datestr, forareplys.addedtime, foratopics.title, 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
   
        datestr = replace(RS("datestr"),"-","/")
        titlestr = left(RS("title"),15) & "..."
 
    response.write("Skrevet " & datestr & " kl. " & formatdatetime(RS("addedtime"),4) & " <br>")
    response.write("I: ""<a href='?page=10&mode=showtopic&fora="&RS("fora")&"&topic="&RS("topic")&"'>"& titlestr & "</a>")
   
rs.movenext
    loop
    end if




Kan virkelig ikke se hvad der er galt. Syntes efterhånden jeg har prøvet ret mange ting, men håber der er et klogt hoved derude, som kan hjælpe ;)
Avatar billede arne_v Ekspert
14. maj 2005 - 20:37 #1
forareplys.topic = 'foratopics.title'

ser lidt suspekt ud
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:39 #2
Har læst at man skal sætte ' tegn rundt om tekst/notat/lign. når man sammeligner felter. Ligeledes skal man bruge # når man sammenligner med en dato
Avatar billede arne_v Ekspert
14. maj 2005 - 20:41 #3
ja men det er kun konstanter ikke felter

jeg tror at det skal være

forareplys.topic = foratopics.id
Avatar billede kalp Novice
14. maj 2005 - 20:44 #4
ellers kan du lige udskrive SQL'en.. så kan vi bedre se hvad der mangler i den.

SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,dd.mm.yyyy) as datestr, forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = 'foratopics.title' ORDER BY forareplys.id DESC;"
response.write(SQL)   
    set RS = conn.execute(SQL)
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:45 #5
Hvad mener du med konstanter?

forasreplys.topics = et tal felt i min forareplys der fortæller i hvilket emne svaret ligger

foratopics.title = titlen på emnet

Så hvad får jeg ud af at skrive foratopics.id istedet. Det kan jeg jo ikke bruge ?
Avatar billede arne_v Ekspert
14. maj 2005 - 20:47 #6
foratopics.title er et felt
'dette er en test' er en konstant
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:48 #7
Min SQL ser sådan her ud når den bliver udskrevet:
SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,dd.mm.yyyy) as datestr, forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = 'foratopics.title' ORDER BY forareplys.id DESC;
Avatar billede arne_v Ekspert
14. maj 2005 - 20:48 #8
forasreplys.topics er et tal
foratopics.title er en tekst
foratopics.id er et tal

ideen virker ikke helt fjollet
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:50 #9
OKay - du må lige bøje det i neon for mig, for er ikke så smart på ASP!
Avatar billede arne_v Ekspert
14. maj 2005 - 20:53 #10
jeg gætter på at du har

foratopics
----------

id title
1  'første tråd'
2  'anden tråd'

forareplys
----------

id  topic
1      1
2      1
3      2
4      2
5      2
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:54 #11
Nu sidder jeg tilbage, som et stort ? tegn!

Kan du evt. rette koden, som du tror den skal se ud. Så kan jeg stille spørgsmål bagefter :)
Avatar billede arne_v Ekspert
14. maj 2005 - 20:56 #12
SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,dd.mm.yyyy) as datestr, forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.id ORDER BY forareplys.id DESC;"
Avatar billede arne_v Ekspert
14. maj 2005 - 20:56 #13
resten ens
Avatar billede ban_me Nybegynder
14. maj 2005 - 20:58 #14
Avatar billede kalp Novice
14. maj 2005 - 21:04 #15
Kommentar: plum
14/05-2005 20:48:25

smed du denne her ind før din SQL kald? response.write(SQL)
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:06 #16
Ja udskrev min SQL lige inden den executede
Avatar billede kalp Novice
14. maj 2005 - 21:14 #17
ahh ja havde lige overset noget.!

Åben din database og sikre dig, at der er værdier i ALLE dine kolonner!
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:16 #18
Det er der!
Avatar billede kalp Novice
14. maj 2005 - 21:20 #19
prøv uden format(forareplys.addeddate,dd.mm.yyyy) as datestr,

altså

SQL = "SELECT TOP 1 forareplys.id, forareplys.topic,forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.title ORDER BY forareplys.id DESC;"
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:27 #20
Fejl igen
Avatar billede kalp Novice
14. maj 2005 - 21:30 #21
Jeg prøver sådan set bare at finde ud af hvilket led den brokker sig over så vi bruger udelukkelsesmetoden:))

SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, format(forareplys.addeddate,dd.mm.yyyy) as datestr, forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics ORDER BY forareplys.id DESC;"
Avatar billede kalp Novice
14. maj 2005 - 21:32 #22
jeg tror faktisk den virker der, men så mangler du din join del.

så et spørgsmål.

Foratopics:
title = notal

forareplys:
topic = tal

De her er jo slet ikke samme datatyper.. så hvad kan der står i sådanne felter? bare et eksempel.
Avatar billede kalp Novice
14. maj 2005 - 21:36 #23
og så et dumt spørgsmål til sidst, men må da heller spørge:))
det kode vi retter i  nu.. det er på i denne asp fil? "frontpage.asp" ?

det bare fordi ud fra det jeg kan se på
http://www.helsingorminiz.dk/temp/
kan jeg ikke se hvad den skal bruges til ved login:)

men det giver måske meningen når det køre:))
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:38 #24
Forareplys indeholder alle de svar der er lavet i forumet. Og forareplys.topic angiver hvilket emne det ligger i.

Foratopics er nemlig mine emner :)

Ved brug af overstående SQL melder den bare samme fejl igen!
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:40 #25
Den bruges til tabellen ved siden af der hedder statestik, så ja, det er frontpage.asp vi retter i :)
Avatar billede kalp Novice
14. maj 2005 - 21:53 #26
Hvis kolonner og data er der så kan jeg ikke lige se problemet i den første SQL desværre du selv kom med. Den burde ikke brokke sig over en af disse.


SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = 'foratopics.title' ORDER BY forareplys.id DESC;"

eller

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = foratopics.title ORDER BY forareplys.id DESC;"
Avatar billede ban_me Nybegynder
14. maj 2005 - 21:55 #27
Hvis jeg bruger en af de overståede giver den denne her 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 248
Avatar billede kalp Novice
14. maj 2005 - 21:58 #28
mon ikke den brokker sig over

forareplys.topic = foratopics.title ?

det er trods alt forskellig datatyper. Det er i hvertfald det fejlen lyder på
Avatar billede kalp Novice
14. maj 2005 - 21:59 #29
er du sikker på du ikke skal

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = foratopics.fora ORDER BY forareplys.id DESC;"

?
Avatar billede ban_me Nybegynder
14. maj 2005 - 22:02 #30
Nej for foratopics.fora er id'et på det forum der bliver skrevet i.
Avatar billede kalp Novice
14. maj 2005 - 22:09 #31
SQL = "SELECT TOP 1 * FROM forareplys, foratopics ORDER BY forareplys.id DESC;"

den her brokker den sig vel heller ikke over?
Avatar billede ban_me Nybegynder
14. maj 2005 - 22:22 #32
Nej - dog ikke :)
Avatar billede kalp Novice
14. maj 2005 - 22:27 #33
fordi hvis den ikke brokkede sig så ville jeg da prøve at opbygge sql sætningen bid for bid og se hvornår den fejler. Fx

SQL = "SELECT TOP 1 forareplys.topic, foratopics.title FROM forareplys,foratopics where forareplys.topic = foratopics.title ORDER BY forareplys.id DESC;"

hvis den siger

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

så er det pga. det er 2 forskellige datatyper..
Avatar billede ban_me Nybegynder
14. maj 2005 - 22:43 #34
Men det burde da kunne lade sig gøre at sige.

forareplys.topic skal være det samme som foratopics.title

Har i nogle ideer?
Avatar billede kalp Novice
14. maj 2005 - 22:47 #35
kan du give eksempler på hvad der står i kolonnen title?

står der talværdier eller tekst?
Avatar billede ban_me Nybegynder
14. maj 2005 - 22:50 #36
Der står tekst. Det er overskriften på emnet. F.eks.

Jeg skal bruge hjælp til min SQL statement !
Avatar billede kalp Novice
14. maj 2005 - 22:56 #37
Den får du aldrig til at virke så:)

Hvordan skal et tal vide hvilken tekst den tilhøre?

fx kunne denne være ligmed "1".
forareplys.topic

og denne være ligmed "Eksperten"
foratopics.title

hvordan skal "1" vide at den tilhøre "eksperten"?
Avatar billede ksoren Nybegynder
14. maj 2005 - 22:57 #38
Lige præcis den fejl plejer at komme når et feltnavn er stavet forkert
Avatar billede ban_me Nybegynder
14. maj 2005 - 23:05 #39
Okay det kan jeg godt se. Men hvordan skal jeg så gøre det. Har følgende felter:

Foratopics:
id = autonummering
fora = tal
addeddate = klokkeslet
addedtime = date og klokkeslet
title = notal

forareplys:
id = autonummering
addeddate = klokkeslet
addedtime = date og klokkeslet
topic = tal


For jeg vil gerne have følgende måde:

Sidste indlæg:
14.05.2005
af plum
I: Jeg skal bruge hjælp til min SQL statement !
Avatar billede kalp Novice
14. maj 2005 - 23:07 #40
der skal vel et slags topic ind i
Foratopics: hvis jeg har forstået det korrekt.. og den joiner du så med den anden og så burde det virke.
Avatar billede kalp Novice
14. maj 2005 - 23:11 #41
dvs dine tabeller..

Foratopics:
id = autonummering
fora = tal
addeddate = klokkeslet
addedtime = date og klokkeslet
title = notal

forareplys:
id = autonummering
addeddate = klokkeslet
addedtime = date og klokkeslet
topic = tal

og din sql...

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = 'foratopics.topic' ORDER BY forareplys.id DESC;"

eller

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = foratopics.topic ORDER BY forareplys.id DESC;"
Avatar billede kalp Novice
14. maj 2005 - 23:12 #42
rettelse

Foratopics:
id = autonummering
fora = tal
addeddate = klokkeslet
addedtime = date og klokkeslet
title = notal
topic = tal

den skal jo også have topic.
Avatar billede kalp Novice
14. maj 2005 - 23:15 #43
desuden tror jeg altså stadig det er den her du skal bruge. Prøv den for en sikkerhedsskyld:) før du smider en ny kolonne ind. Hvis ikke disse virker så skal du gøre som jeg foreslog før.

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = 'foratopics.fora' ORDER BY forareplys.id DESC;"

eller

SQL = "SELECT TOP 1 * FROM forareplys, foratopics WHERE forareplys.topic = foratopics.fora ORDER BY forareplys.id DESC;"
Avatar billede ban_me Nybegynder
15. maj 2005 - 08:39 #44
Kalp. Jeg ved nu godt hvad mine felter indeholder ;)

Og nej - foratopics skal ikke også have et felt der hedder topic. Da forareplys.topic er det samme som foratopics.id
Avatar billede ban_me Nybegynder
15. maj 2005 - 08:40 #45
Og foratopics.fora er det id nummer på det forum det ligger i.

Har nemlig også en tabel der hedder foras
Avatar billede ban_me Nybegynder
15. maj 2005 - 08:50 #46
Men nu fik jeg det til at virke. Sagde forareplys.topics = foratopics.id samt fjernede jeg format på dato. Men hvor kan jeg så ligge min format hende, da jeg gerne vil have den udskrevet sådan her: 15.05.2005 ?

---
    SQL = "SELECT TOP 1 forareplys.id, forareplys.topic, forareplys.addeddate, forareplys.addedtime, foratopics.title, foratopics.fora FROM forareplys, foratopics WHERE forareplys.topic = foratopics.id 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("title"),15) & "..."

  response.write("Skrevet " & formatdatetime(RS("addeddate"),4) & " kl. " & formatdatetime(RS("addedtime"),4) & " <br>")
  response.write("I: ""<a href='?page=10&mode=showtopic&fora="&RS("fora")&"&topic="&RS("topic")&"'>"& titlestr & "</a>")
 
rs.movenext
    loop
    end if
Avatar billede kalp Novice
15. maj 2005 - 10:00 #47
Nu er jeg ikke så god til sådan noget med dato formater, men du kan vel gøre det før du udskriver den og ikke nødvendigvis i sql'en?
Avatar billede ban_me Nybegynder
15. maj 2005 - 10:26 #48
Okay - så ligger i bare et svar, dig og arne_v, så vil point blive fordelt
Avatar billede kalp Novice
15. maj 2005 - 10:28 #49
Oki:)
Avatar billede arne_v Ekspert
15. maj 2005 - 11:27 #50
ok
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