Karsten Krambs skrev:
> ahhh - jeg har åbenbart probelemer med at finde ud af hvornår
> man skal bruge & " og '
Ganske kort:
&-tegnet bruges til at sætte tekst-elementer sammen:
Response.write "Hej " & "med " & " dig" - giver "Hej med dig".
Det er ofte anvendt i forbindelse med variable:
Dim fornavn, efternavn
fornavn = Request.Querystring("fornavn")
efternavn = Request.Querystring("efternavn")
Response.write "Hej " & fornavn & " " & efternavn
Normale dobbelte anførselstegn (") bruges til at markere
tekststrenge i asp.
Hvis en streng skal indeholde et dobbelt anførselstegn, er man nødt
til at escape det, så asp-parseren ikke tror at strengen slutter
der. Man escaper et anførselstegn ved at sætte endnu et
anførselstegn ved siden af. For at udskrive følgende linje:
Katten hedder "Kis"
- kan man skrive følgende:
Response.write "Katten hedder ""Kis"""
I ovenstående linje er der 6 anførselstegn. Det første og det
sidste markerer start og slut på teksten. Nr. to og tre bliver til
et enkelt anførselstegn før K i udskriften og tilsvarende bliver
nr. fire og fem til det afsluttende anførselstegn efter s i
udskriften. Hvis man bruger strengsammensætninger med anførselstegn
meget, kan en editor der kan farvemarkere asp-kode hjælpe
gevaldigt. I min editor er tekst mellem anførselstegn markeret med
en særlig farve - og da editoren kender reglerne om hvordan
anførselstegn escapes, kan jeg let se om der er et passende antal
anførselstegn i et eksempel som det følgende:
Response.write """<meta http-equiv=""" & content & _
""" content=""" & ctype & """ />"""
Enkelte anførselstegn (apostrof) har typisk tre forskellige
anvendelsesmuligheder i asp.
a) Dels fungerer apostroffen som kommentartegn. Sætter man en
apostrof på en linje, vil al efterfølgende kode på linjen ikke
blive behandlet af asp-parseren. Eksempler:
Dim navn ' Her er en kommentar til navne-linjen
' navn = "Peter" (her står kommentartegnet først, så navn ="Peter"
' udføres ikke)
b) Når apostroffen indgår i en tekststreng (enten i en variabel
eller mellem dobbelte anførselstegn), har den ingen speciel
betydning i asp. Der skal altså ikke escapes eller på anden på
tages særhensyn i følgende eksempler:
navn = "Mac'Donald"
Response.write "Hej din 'bænkebider'"
c) Et særtilfælde af b er når man skriver sql-kode. SQL-kode er ren
tekst og i forhold til asp-parseren er der ingen problemer i fx at
skrive følgende:
strSQL = "SELECT * FROM navne WHERE efternavn = 'Mac'Allan'"
- men når databasen skal behandle forespørgslen, vil den kløjs i
det skæve antal anførselstegn i kriteriet (den vil læse "efternavn
= 'Mac'" efterfulgt af en ukendt kommando "Allan"). Løsningen er
den samme som for de dobbelte anførselstegn - man escaper med et
ekstra anførselstegn (af samme slags). Kommandoen bliver så:
strSQL = "SELECT * FROM navne WHERE efternavn = 'Mac''Allan'"
(der er 6 anførselstegn i ovenstående, i følgende rækkefølge
["] ['] [']['] [']["])
På siden her kan man se hvordan man kan lave en funktion der sørger
for at escape anførselstegn til sql-kommandoer:
<
http://asp-faq.dk/article/?id=95>
--
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