spintail skrev:
> Det var lige i øjet. Tak Jens
Velbekomme.
> Må jeg spørge dig om en anden lille detajle.... hvis nu jeg
> har en SQL :
> SQL= "select * from tabel where feldt =1"
> set rs = conn.execute(SQL)
>
> Hvordan sætter jeg så det jeg gerne vil skrive ud?
Sætter? Jeg forstår ikke helt hvad du mener - er problemet at få
data fra flere poster ud?
> strBody = strBody & "<td><%=rs("feldt")%></td>"
> Dette kan jeg heller ikke få til at virke ved ikke lige hvor
> de forskellige " skal sættes.
Mht. anførselstegn er der nogle generelle regler.
I asp-sammenhæng er " (dobbelt anførselstegn) et anførselstegn,
mens ' (apostrof) er et kommentartegn. Alle tekstværdier skal i asp
omkranses af anførselstegn.
Simple tilfælde:
X = "Howdy"
Response.write "Howdy"
SQL = "SELECT * FROM foo"
I et postsæt refererer man normalt til navnet på et felt som
følger: rs("feltnavn") - her er feltnavn også en simpel tekstværdi.
Problemerne med anførselstegn opstår typisk når man skal lave
tekststrenge der selv indeholder anførselstegn. Også her er reglen
simpel nok - omend det godt kan se forvirrende ud i koden.
Et anførselstegn inde i en tekstværdi skrives som *to*
anførselstegn - i stedet for at skrive " skriver man altså "". Det
dobbelte anførselstegn sikrer at asp-parseren tolker det som et
tegn i en streng, og ikke afslutningen på strengen.
Man kan derfor skrive:
Y = "Han sagde ""Hej"" og gik videre"
Response.write "<a href=""foo.html"">foo</a>"
- og få asp-parseren til at læse det som:
(Y = ) Han sagde "Hej" og gik videre
<a href="foo.html">foo</a>
Hvis man skal hente data ind i en tekststreng - fx fra et postsæt,
en vb-konstant, en variabel eller lignende - er det vigtigt at
sørge for at kaldet til disse data ikke er sat i anførselstegn. ASP
læser intet inde i en korrekt markeret tekststreng, så man skal
skrive alle referencer udenfor anførselstegnene.
Skriver man:
Response.write "X &vbNewline Y"
- er "&vbNewline" bare en del af teksten, og den vil blive
udskrevet som de 10 tegn den består af.
Skriver man i stedet:
Response.write "X" & vbNewline & "Y"
- bliver vbNewline læst som en vb-konstant og "oversat" til et
linjeskift.
Helt tilsvarende er det med data fra et postsæt:
A) Response.write "<p> & rs("feltnavn") & </p>"
B) Response.write "<p> & rs(""feltnavn"") & </p>"
C) Response.write "<p>" & rs("feltnavn") & "</p>"
A vil give en asp-fejl, fordi stregen stopper efter nr. 2
anførselstegn.
B vil udskrive teksten <p> & rs("feltnavn") & </p> i koden
(bogstaveligt)
C vil derimod udskrive *værdien* af rs("feltnavn") mellem <p> og
</p> - det er den variant man normalt har brug for.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html