/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
syntaxfejl i sql streng
Fra : ib petersen


Dato : 14-02-07 20:12

Nu er det vist snart ved at være lidt pinligt, men igen har jeg
problemer med en sql-streng der ser sådan ud:

strSQL = "SELECT * FROM moeder WHERE kundeID='" & strkundeID &
"'" &_ " AND T1=" & strT1 & "'"

jeg henter data fra en accessdatabase - og strkundeID er et tal -
strT1 en tekst - jeg får flg. fejlmelding:

Der er en syntaksfejl i strengen i forespørgselsudtrykket
"kundeID='38194528' AND T1=28-02-2007'".

Er klar over at det er mit sædvanlige problem med ( ' ) og ( & )
men kan ikke hitte rede på hvor jeg fejler.

Håber endnu engang at I kan vise mig hvor fejlen ligger, så håber
jeg at det endelig siver ind, hvordan man sætter disse tegn.

På forhånd tak og undskyld mine tilbagevendende spørgsmål,
håber at I tilgiver en (stadig) nybegynder i asp og sql.

Ib




--
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

 
 
Jørn Andersen (14-02-2007)
Kommentar
Fra : Jørn Andersen


Dato : 14-02-07 22:11

On 14 Feb 2007 19:11:32 GMT, ib petersen <ibber@comxnet.dk> wrote:

>Nu er det vist snart ved at være lidt pinligt, men igen har jeg
>problemer med en sql-streng

Nej, ikke pinligt - jeg tror de fleste af os har måttet kæmpe os
igennem for at forstå det

>der ser sådan ud:
>
>strSQL = "SELECT * FROM moeder WHERE kundeID='" & strkundeID &
>"'" &_ " AND T1=" & strT1 & "'"
>
>jeg henter data fra en accessdatabase - og strkundeID er et tal -
>strT1 en tekst - jeg får flg. fejlmelding:
>
>Der er en syntaksfejl i strengen i forespørgselsudtrykket
>"kundeID='38194528' AND T1=28-02-2007'".

Her kan du se, at der kun er ' på *den ene* side af T1-værdien.
Det skal være:
"kundeID='38194528' AND T1='28-02-2007'"

I SQL bliver det:
strSQL = "SELECT * FROM moeder" & _
" WHERE kundeID='" & strkundeID & "'" & _
" AND T1='" & strT1 & "'"

>Er klar over at det er mit sædvanlige problem med ( ' ) og ( & )
>men kan ikke hitte rede på hvor jeg fejler.

Jeg har skrevet en længere smøre i den anden tråd, som du måske kan
bruge.

Noget helt andet er så, at det ikke altid (læs: sjældent) er smart at
have datoer repræsenteret som tekst. Datoer bør gemmes som en
dato-værdi i databasen.
Det vil ikke give dig en syntaks-fejl i SQL-strengen, men måske vil du
ikke får de resultater, du forventer.

Men det er som sagt et andet (større) problem: Dato/tid i ASP og
databaser - som du sikkert vender tilbage til


Good luck,
Jørn

--
Jørn Andersen, Brønshøj

Danske tropper hjem fra Irak, nu!
Skriv under: www.kirkmand-initiativet.dk

ib petersen (15-02-2007)
Kommentar
Fra : ib petersen


Dato : 15-02-07 10:33

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 14 Feb 2007 19:11:32 GMT, ib petersen <ibber@comxnet.dk> wrote:
>
> >Nu er det vist snart ved at være lidt pinligt, men igen har jeg
> >problemer med en sql-streng

> I SQL bliver det:
> strSQL = "SELECT * FROM moeder" & _
> " WHERE kundeID='" & strkundeID & "'" & _
> " AND T1='" & strT1 & "'"

Hej Jørn
Først tak for hjælpen - det løste næsten problemet, men nu får jeg en
anden fejlmelding, der siger at datatyperne ikke svarer til kriterierne.
Er klar over at det er noget med de (for mig) sædvanlige problemer med
( ' ) ( " ) og ( & ), fatter det simpelthen ikke.
Jeg har prøvet at lave "kundeID" om til tekststreng, og så virker dit
forslag,
men ikke når det er en talværdi. Desværre gav det problemer med andre
sider, så det var ikke løsningen.

Kan du hjælpe mig endnu engang - med et forslag ?

Kan du evt. huske hvornår sådan ca. du skrev den tråd om ( ' ) , har
kikket en masse af de forskellige tråde igennem, uden at kunne finde
den.


--
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

Thomas Møller Nexø (15-02-2007)
Kommentar
Fra : Thomas Møller Nexø


Dato : 15-02-07 13:40

> Hej Jørn
> Først tak for hjælpen - det løste næsten problemet, men nu får jeg en
> anden fejlmelding, der siger at datatyperne ikke svarer til kriterierne.
> Er klar over at det er noget med de (for mig) sædvanlige problemer med
> ( ' ) ( " ) og ( & ), fatter det simpelthen ikke.
> Jeg har prøvet at lave "kundeID" om til tekststreng, og så virker dit
> forslag,
> men ikke når det er en talværdi. Desværre gav det problemer med andre
> sider, så det var ikke løsningen.

Prøv at droppe ' ved talværdien.
' Indikerer netop at der er tale om en tekstreng, mens du med " & strTest &
"' indikerer, at det er en streng.

Med venlig hilsen,
Thomas

--
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

Thomas Møller Nexø (15-02-2007)
Kommentar
Fra : Thomas Møller Nexø


Dato : 15-02-07 13:42

> Prøv at droppe ' ved talværdien.
> ' Indikerer netop at der er tale om en tekstreng, mens du med " & strTest &
> "' indikerer, at det er en streng.

Mens du med " & strTest & "' indikerer, at det er en talværdi selvfølgelig.

--
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

Jørn Andersen (15-02-2007)
Kommentar
Fra : Jørn Andersen


Dato : 15-02-07 18:19

On 15 Feb 2007 09:32:42 GMT, ib petersen <ibber@comxnet.dk> wrote:

>Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
>> I SQL bliver det:
>> strSQL = "SELECT * FROM moeder" & _
>> " WHERE kundeID='" & strkundeID & "'" & _
>> " AND T1='" & strT1 & "'"
>
>Hej Jørn
>Først tak for hjælpen - det løste næsten problemet, men nu får jeg en
>anden fejlmelding, der siger at datatyperne ikke svarer til kriterierne.

OK, det er en fejlmelding fra databasen, ikke fra dit script, så dit
første problem er i princippet løst :)

>Er klar over at det er noget med de (for mig) sædvanlige problemer med
>( ' ) ( " ) og ( & ), fatter det simpelthen ikke.
>Jeg har prøvet at lave "kundeID" om til tekststreng, og så virker dit
>forslag,
>men ikke når det er en talværdi. Desværre gav det problemer med andre
>sider, så det var ikke løsningen.

Lige først et par spørgsmål:
- Hvilken database bruger du?
- Er kundeId et tekst-felt eller et talfelt (i databasen)?
- Er T1 et tekst-felt eller et datofelt (i databasen)?

Der skal kun ' om værdien, når det er en tekststreng - ikke ved tal.
Ved datoer kan man sætte # om, men der er så muligvis nogle andre
problemer ved søgning på dato-felter. Se fx:
<url: http://www.asp-faq.dk/article/?id=98>
- eller vend tilbage, hvis det er et dato-felt.

>Kan du evt. huske hvornår sådan ca. du skrev den tråd om ( ' ) , har
>kikket en masse af de forskellige tråde igennem, uden at kunne finde
>den.

I din første tråd:
Subject: hjælp til sql forespørgsel til database
Date: 13 Feb 2007 21:12:41 GMT

Good luck,
Jørn

--
Jørn Andersen, Brønshøj

Danske tropper hjem fra Irak, nu!
Skriv under: www.kirkmand-initiativet.dk

ib petersen (15-02-2007)
Kommentar
Fra : ib petersen


Dato : 15-02-07 21:08

Hej Jørn

Først lige tak for det omfattende indlæg vedr. placering af anførselstegn -
jeg må jo erkende at jeg ikke har fuldt op på det indlæg jeg lavede - det
beklager jeg meget.
Ihvertfald har jeg nu fået lidt mere klarhed over hvordan og hvor man
anbringer disse tegn.
Tak for det.

Jørn skrev:
Lige først et par spørgsmål:
> - Hvilken database bruger du?
> - Er kundeId et tekst-felt eller et talfelt (i databasen)?
> - Er T1 et tekst-felt eller et datofelt (i databasen)?


Det er en accessdatabase, kundeID er et talfelt og T1 et tekstfelt ( ved
godt at det ikke er smart, og det bliver nok også ændret med tiden, skal dog
kun bruges til at søge udfra)

Nu er der i det mindste kommet orden styr på tal og tekst værdier.
Til gengæld får jeg nu med denne forespørgsel
strSQL = "SELECT * FROM moeder" & _
" WHERE kundeID="' & strkundeID & '" & _
" AND T1='" & strT1 & "'"
Set rs = Conn.Execute(strSQL)

flg. fejlmelding:

En sætning var ventet
/ret_moede.asp, line 20
" AND T1='" & strT1 & "'"

forstår ikke dette, tidligere viste den godt nok værdien af strT1 -
så nu er jeg da helt forvirret, lige som man troede at man havde forstået
det,
ja - så havde man det ikke alligevel.
Har du evt. et godt bud på hvor jeg har anbragt forkert tegn ( " ) tror jeg.

Endnu engang tak for din tålmodighed og hjælp.

Hilsen
Ib



--
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

Jørn Andersen (15-02-2007)
Kommentar
Fra : Jørn Andersen


Dato : 15-02-07 23:50

On 15 Feb 2007 20:07:41 GMT, ib petersen <ibber@comxnet.dk> wrote:

>Først lige tak for det omfattende indlæg vedr. placering af anførselstegn -
>jeg må jo erkende at jeg ikke har fuldt op på det indlæg jeg lavede - det
>beklager jeg meget.
>Ihvertfald har jeg nu fået lidt mere klarhed over hvordan og hvor man
>anbringer disse tegn.
>Tak for det.

Velbekomme!

>Det er en accessdatabase, kundeID er et talfelt og T1 et tekstfelt ( ved
>godt at det ikke er smart, og det bliver nok også ændret med tiden, skal dog
>kun bruges til at søge udfra)

Faktisk får du *langt* bedre søge-muligheder med et dato-felt, men lad
det nu ligge, indtil det bliver et problem.

>Nu er der i det mindste kommet orden styr på tal og tekst værdier.
>Til gengæld får jeg nu med denne forespørgsel
>strSQL = "SELECT * FROM moeder" & _
>" WHERE kundeID="' & strkundeID & '" & _
>" AND T1='" & strT1 & "'"

Når du får fejl som den herunder, er det *altid* en god idé at
udskrive SQL-strengen med:

Response.Write strSQL
Response.End

- hvor den sidste linie stopper scriptet, inden parseren kommer til
den linie, der laver fejl.

Så får du set, hvad SQL-strengen rent faktisk ender med at være, og du
kan evt. prøve den af direkte i Access.

>Set rs = Conn.Execute(strSQL)
>
>flg. fejlmelding:
>
>En sætning var ventet
>/ret_moede.asp, line 20
>" AND T1='" & strT1 & "'"



Og den fejl får du, fordi du har ' *uden for* din tekststreng:
>" WHERE kundeID="' & strkundeID & '" & _

(Når der er en ' uden for tekst-strengen, så bliver den opfattet som,
at "her starter en kommentar" - altså at den gentlige kode stopper
her. På næste linie undrer ASP-parseren sig og siger: Man kan ikke
bare starte en sætning med en streng - for der er jo ikke noget
"fortsættelses-tegn" i den foregående linie.)

Det skulle være:
" WHERE kundeID='" & strkundeID & "'" & _
- hvis altså at kundeID var et tekst-felt

Men det er det jo ikke. Det er et talfelt, og derfor skal der ikke
være ' omkring - så prøv med:
" WHERE kundeID=" & strkundeID & _


>forstår ikke dette, tidligere viste den godt nok værdien af strT1 -
>så nu er jeg da helt forvirret, lige som man troede at man havde forstået
>det,
>ja - så havde man det ikke alligevel.

Jeg tror såmænd nok, at du har forstået det, men derfor jkan man jo
stadig lave fejl (jeg kan ihvertfald).

Good luck,
Jørn

--
Jørn Andersen, Brønshøj

Danske tropper hjem fra Irak, nu!
Skriv under: www.kirkmand-initiativet.dk

ib petersen (16-02-2007)
Kommentar
Fra : ib petersen


Dato : 16-02-07 10:04

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 15 Feb 2007 20:07:41 GMT, ib petersen <ibber@comxnet.dk> wrote:

Når du får fejl som den herunder, er det *altid* en god idé at
> udskrive SQL-strengen med:
>
> Response.Write strSQL
> Response.End

Tak for tippet, det er var en god ide !

> Jeg tror såmænd nok, at du har forstået det, men derfor jkan man jo
> stadig lave fejl (jeg kan ihvertfald).

Tak for den moralske støtte og ikke mindst løsningen, nu lykkedes det endeligt.
Hjalp da jeg fik fjernet ( ' ) som du skrev, og da jeg også så at jeg havde
omdøbt
min strkundeID til intkundeID ( så det lettere kunne ses at det var en talværdi)

Kan kun konstatere, at der vist er lang vej - indtil at jeg mestrer asp - men
med jeres hjælp lykkes det vel en dag.

Med håbet om at I må holde ud længe endnu, ønskes I en god dag.

Hilsen
Ib


--
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

Jørn Andersen (16-02-2007)
Kommentar
Fra : Jørn Andersen


Dato : 16-02-07 13:16

On 16 Feb 2007 09:03:33 GMT, ib petersen <ibber@comxnet.dk> wrote:

>Kan kun konstatere, at der vist er lang vej - indtil at jeg mestrer asp

"Mestrer" er jo også ambitiøst

Faktisk er du godt på vej gennem den værste del. Når man kan finde ud
af at forespørge i en database og lave en fornuftig udskrift af sine
resultater, så begynder du også at kunne lave mindre, men brugbare
applikationer. Og så er det at, man kan se, at det "åbner en ny
verden" i forhold til statisk HTML - og derfor får mere motivation til
at fortsætte.

Når du har leget lidt mere med det, du kan nu, så ville jeg begynde at
tænke i at anskaffe noget læsestof.
Hvis du er nogenlunde til engelsk, så er der én bog, du skal købe,
nemlig "Beginning Active Server Pages 3.0" fra WROX forlag.

Det er en moppedreng på over 1100 sider, men den er absolut pengene
værd. Køb den fx på amazon.com for $40 (+ porto og told).
Den er velskrevet, grundig og pædagogisk opbygget.
Lad være med at købe danske bøger, hvis du er bare nogenlunde til
engelsk - du får meget mere for pengene med WROX-bogen.

Desuden vil jeg anbefale at have adgang til VBScript-dokumentation -
eller "Windows Script 5.6 Documentation" som den hedder:
<url:
http://www.microsoft.com/downloads/details.aspx?familyid=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en>
Download den som en Windows Help File, så har du den altid ved hånden.
Den er uundværlig, når man lige skal finde en funktion, eller når man
ikke kan huske syntaksen.

Good luck!
Jørn

--
Jørn Andersen, Brønshøj

Danske tropper hjem fra Irak, nu!
Skriv under: www.kirkmand-initiativet.dk

ib petersen (18-02-2007)
Kommentar
Fra : ib petersen


Dato : 18-02-07 20:58

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
anskaffe noget læsestof.
> Hvis du er nogenlunde til engelsk, så er der én bog, du skal købe,
> nemlig "Beginning Active Server Pages 3.0" fra WROX forlag.
>
Tak for rådet, jeg har godt nok ovennævnte bog i version 2.0 sammen med den prof. version 2.0,
så den vil jeg kaste mig over.

Desuden vil jeg anbefale at have adgang til VBScript-dokumentation -
> eller "Windows Script 5.6 Documentation" som den hedder:

Er hermed gjort !

Endnu engang tak for assistancen !

Hilsen
ib

--
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

Jens Gyldenkærne Cla~ (16-02-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-02-07 00:39

Jørn Andersen skrev:

>>/ret_moede.asp, line 20
>>" AND T1='" & strT1 & "'"

> Og den fejl får du, fordi du har ' *uden for* din tekststreng:
>>" WHERE kundeID="' & strkundeID & '" & _

Et tip: Find en editor der kan farvemarkere asp/vbscript - så
bliver fejl på grund af forkerte anførselstegn *meget* lettere at
opdage. Med farvemarkering vises tekststrenge med én farve,
kommentarer med en anden og "rå" asp-kode med en tredje (typisk
fremhæves reserverede ord i asp også).

Asp-kode med sql-sætninger kan være svært nok at finde rundt i uden
at bekymre sig om anførselstegn - så der er ingen grund til at gøre
det sværere end højst nødvendigt.

Der findes en del editorer der tilbyder basal farvemarkering -
nogle af dem ganske gratis. Her er nogle jeg fandt via google
(bruger selv en gammel betalingseditor, så jeg kan ikke anbefale
nogle af de listede:
<http://www.freedownloadscenter.com/Best/free-asp-editor.html>)
--
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

ib petersen (16-02-2007)
Kommentar
Fra : ib petersen


Dato : 16-02-07 10:14

Jens GyldenkærneClausen wrote
> Et tip: Find en editor der kan farvemarkere asp/vbscript - så
> bliver fejl på grund af forkerte anførselstegn *meget* lettere at
> opdage.

Hej Jens
Tak - det var en god ide - det er helt klart nemmere at overskue
med den farvemarkering -

Tak for al den hjælp I har givet indtil nu, det har givet lidt mere
lyst
til at fortsætte indlæringen af asp, når man også kan se nogle
resultater.

God dag til dig !

Hilsen
Ib


--
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

Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste