On 14 Feb 2007 08:38:28 GMT, ib petersen <ibber@comxnet.dk> wrote:
>Jens GyldenkærneClausen wrote in
>dk.edb.internet.webdesign.serverside.asp:
>> ib petersen skrev:
>>
>> > Jeg skal hente nogle informationer fra en database
>>
>> > strSQL = "Select * FROM moeder WHERE T1 = " & strT1 SORT BY T1
>>
>> 1) Sortering i SQL foretages med ORDER BY - ikke SORT BY.
>>
>> 2) Du mangler asp-anførselstegn og & i slutningen (jf Jørns indlæg)
>
>Endnu engang kan jeg kun bøje mig i støvet og ydmygt takke for
>hjælpen til jer her på i nyhedsgruppen.
>Dejligt at I har tid til at hjælpe en nybegynder - med de
>vanskeligheder
>man render ind i undervejs.
>Det er vist helt klart at jeg ikke har
>styr på det med ( ' ) og ( & ) tegnene, hvornår det skal bruges og
>hvordan.
>Hvis I evt. kunne give mig et tip om hvor jeg kan finde svar på dette,
>ville det være dejligt.
Hej Ib,
Du skal starte med at skelne mellem strenge og så variable, der
udtrykker strenge.
Man bruger oftest variable til ting, der kan variere, eller værdier,
der skal genbruges.
Variable er *uden* anførselstegn
Tekststrenge er *med* anførselstegn.
Man limer så tekststrenge (og variable) sammen med &-tegnet.
strDyr = "hest"
intAntalBen = 4
strSaetning = "En " & strHest & " har " & intAntalBen & " ben."
Resultatet bliver:
En hest har 4 ben.
Sætningen består af 5 dele:
"En "
strHest
" har "
intAntalBen
" ben."
- altså 3 tekststrenge (med " " om) og to variable (uden " "). De er
så "limet sammen" med &-tegn.
So far so good - det er nogenlunde lige ud ad landevejen.
Men det var en af de ting, der gik galt i dit eksempel, så det er et
vigtigt fundament at have styr på.
Problemet bliver større, når der så skal være anførselstegn inde i en
streng.
Vi kan fx *ikke* skrive:
strStreng = "Manden bliver kaldt "Basse""
- fordi det andet "-tegn afslutter strengen (og man får en
syntaks-fejl).
Her er reglen, at anførselstegn i strenge dubleres:
strStreng = "Manden bliver kaldt ""Basse"""
- hvor det første og sidste "-tegn er dem, der afgrænser strengen,
mens de to "" omkring Basse er dublerede "-tegn inde i strengen.
Udskriver man sætningen, får man:
Manden bliver kaldt "Basse"
I en SQL-streng kan der være brug for lige netop dette.
Hvis vi f.eks skal finde de poster, hvor navnet er Jensen, så er der
tale om et tekst-felt. Og ved tekst-felter skal der bruges anf.-tegn
om værdierne i en SQL-streng - men det går ikke med:
strSQL = "... WHERE navn = "Jensen""
- fordi det andet "-tegn afslutter strengen
Her kan man så dublere for at løse problemet:
strSQL = "... WHERE navn = ""Jensen"""
- men da SQL er ligeglad med, om der bruges enkelt- eller
dobbelt-anf.tegn (' eller ") om værdier, så er det oftest mere
overskueligt at bruge:
strSQL = "... WHERE navn = 'Jensen'"
Her bliver strengen *ikke* afsluttet af anf.tegnene omkring navnet. Så
begge de to herunder kan bruges:
strSQL = "... WHERE navn = ""Jensen"""
strSQL = "... WHERE navn = 'Jensen'"
Skal man så have variable ind, bliver det:
strNavn = "Jensen"
og:
strSQL = "... WHERE navn = """ & strNavn & """"
eller:
strSQL = "... WHERE navn = '" & strNavn & "'"
Her er det tydeligt, at det er mere overskueligt med ' i stedet for "
i SQL-strengen.
Og for lige at gå tilbage til det basale, så består den enderste
streng af 3 dele:
"... WHERE navn = '" (- en streng)
strNavn (- en variabel som udtrykker en streng)
"'" (- en streng)
- som limes sammen med &-tegn.
For lige at opsummere reglerne:
a) Variable er *uden* anførselstegn
Tekststrenge er *med* anførselstegn.
b) Man limer tekststrenge (og variable) sammen med &-tegnet.
c) Anførselstegn i strenge dubleres.
d) SQL er ligeglad med, om der bruges enkelt- eller dobbelt-anf.tegn
(' eller "), så man kan bruge ' i stedet for dublerede
dobbeltanførselstegn ("").
Håber det hjalp en smule. Ellers spørg videre.
>Endnu engang tak for hjælpen til jer.
Velbekomme!
Mvh. Jørn
--
Jørn Andersen, Brønshøj
Danske tropper hjem fra Irak, nu!
Skriv under:
www.kirkmand-initiativet.dk