> > Løste problemet med dreamweaver:
> > "SELECT * FROM bogspmaal LEFT JOIN ( SELECT bogid, elevid FROM
> > elevresultat WHERE elevresultat.elevbrugernavn = '" +
> > Replace(Recordset1__MMColParam, "'", "''") + "' ) AS Setpostbruger
> > ON bogspmaal.bogid = Setpostbruger.bogid WHERE Setpostbruger.elevid
> > Is Null AND bogspmaal.aktiv = TRUE AND left(bogspmaal.bogtitel,1) =
> > '" + Replace(Recordset1__u_letter, "'", "''") + "' ORDER BY
> > bogtitel asc"
>
> Jeg kan ikke se hvad forskellen er på ovenstående og det du prøvede med
> først - eller er jeg bare blind..?
>
> Det er selvfølgelig fint hvis det virker, men jeg ser stadig en
> uhensigtmæssighed i din forespørgsel, som måske også var grunden til at
> det gik galt før:
> 1) Antag at u_letter er "b" og elevens brugernavn er bruger1. Det gør
> det bare nemmere...
> 2) Du har tabellen bogspmaal:
> [der er 3 bøger, og de er alle aktive og titlen starter med b]
> ---------------------
> bogid bogtitel aktiv
> 1 bog1 true
> 2 bog2 true
> 3 bog3 true
> ---------------------
> 3) Du har den midlertidige tabel setpostbruger:
> [brugeren har kun svaret på en bog]
> -------------
> bogid elevid
> 2 bruger1
> -------------
> 4) Du joiner dem med left join og får derfor en tabel hvor alle
> felterne er med. Men læg mærke til at der er to felter der hedder
> bogid.
> -------------------------------------------------------------
> bogspmaal.bogid bogtitel aktiv setpostbruger.bogid elevid
> 1 bog1 true null null
> 2 bog2 true 2 bruger1
> 3 bog3 true null null
> -------------------------------------------------------------
> og efter where-sætningen har du tilbage:
> -------------------------------------------------------------
> bogspmaal.bogid bogtitel aktiv setpostbruger.bogid elevid
> 1 bog1 true null null
> 3 bog3 true null null
> -------------------------------------------------------------
> 5) Du referer så med <% rs("bogid") %> til et af felterne, der hedder
> bogid. Du har dog ikke angivet om det skal være bogspmaal.bogid eller
> setpostbruger.bogid og selv om du skriver at det virker nu, så er jeg
> bange for at du bare er heldig...
>
> Jeg vil derfor - generelt - anbefale dig at angive hvilke felter du
> trækker ud, i stedet for bare at vælge dem alle. For de første slipper
> du for at trække data ud du ikke skal bruge og for det andet så slipper
> du måske for at få det problem du havde først.
> Altså brug
> select felt1, felt2, ...
> i stedet for
> select * ...
> I det konkrete tilfælde ville du aldrig vælge at trække
> setpostbruger.bogid ud, og <% rs("bogid") %> kunne så entydigt referere
> til bogspmaal.bogid.
>
> mvh Torben
>
Hej Torben
Tak for din meget fyldige gennemgang, en fornøjelse at læse. Gav mig
faktisk en god forståelse for hvad der egentligt sker. Jeg vil bestemt
afprøve dine anbefalinger.
Der er vel ikke noget galt i at være heldig
Da mine asp evner er begrænsede, må jeg af og til ty (ofte) til
Dreamweaver MX. Ovenstående virker faktisk, dog ikke med <% rs("bogid") %>
men med <%=(Recordset1.Fields.Item("bogspmaal.bogid").Value)%>.
Oprindeligt afprøvede jeg også <% rs("bogspmaal.bogid") %> men fik en
fejlmelding.
M.v.h.
Michael
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials