webForumDet fria alternativet

Join trubbel

4 svar · 327 visningar · startad av rilu

riluMedlem sedan jan. 200059 inlägg
#1

Har en SQL-kod som ser ut så här:

<%
RS="SELECT * FROM (media INNER JOIN (label INNER JOIN title ON label.labelid = title.labelid) ON media.mediaid = title.mediaid) INNER JOIN (artist INNER JOIN artisttitle ON artist.artistid = artisttitle.artistid) ON title.titleid = artisttitle.titleid WHERE artisttitle.titleid="&Request.Querystring("id")&"
%>

Så här ser tabellerna ut:

media
----------------------
mediaid (räknare)
media (text)

label
----------------------
labelid (räknare)
label (text)

title
----------------------
titleid (räknare)
mediaid (tal)
labelid (tal)
mm...

artist
----------------------
artistid (räknare)
artistnamn (text)

artisttitle (ref. tabell)
----------------------
id (räknare)
artistid (tal)
titleid (tal)

Problemet är att när jag testar frågan i Access så fungerar den utmärkt och plockar ut en titel och visar all information om den, men när jag kör den på sidan får jag följande fel:

**Microsoft VBScript runtime error '800a000d'

Type mismatch**

Hoppas nån kan svara på detta.

riluMedlem sedan jan. 200059 inlägg
#2

Fel forum

Kan nån flytta det här till SQL-forumet istället?

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Det var nog lite förhastat att flytta den till SQL eftersom du får ett VB-script fel. Är det den raden som du visar som du får fel på?

Du kan ju ta bort sista biten (& ") i alla fall

<%
RS="SELECT * FROM (media INNER JOIN (label INNER JOIN title ON label.labelid = title.labelid) ON media.mediaid = title.mediaid)" &_
"  INNER JOIN (artist INNER JOIN artisttitle ON artist.artistid = artisttitle.artistid) ON title.titleid = artisttitle.titleid " & _
" WHERE artisttitle.titleid="&Request.Querystring("id")
%>

Skriv inte så långa rader då det är så jobbigt att läsa im man måste scrolla i sidled.

riluMedlem sedan jan. 200059 inlägg
#4

Ja, det är den sista raden jag får fel på när jag försöker få ut något ur recordsettet. SQLen funkar rent tekniskt, men när jag ska ta ut något t ex artist ur recsetet så får jag ett typ-fel...

Så här ser koden ut som inte funkar i vb-form men i databasen.

<%
RS="SELECT * FROM (media INNER JOIN 
(label INNER JOIN title ON label.labelid = title.labelid) ON 
media.mediaid = title.mediaid) 
INNER JOIN (artist INNER JOIN artisttitle ON artist.artistid = 
artisttitle.artistid) 
ON title.titleid = artisttitle.titleid WHERE title.titleid=4"%>

Ger följande när jag kör den:

SELECT * FROM (media INNER JOIN
(label INNER JOIN title ON label.labelid = title.labelid) ON media.mediaid = title.mediaid) INNER JOIN
(artist INNER JOIN artisttitle ON artist.artistid = artisttitle.artistid) ON title.titleid = artisttitle.titleid
WHERE title.titleid=4

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Hur ser koden där du hämtar saker från recset ut?

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)