/ 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
Simpelt: Min SQL string virker ikke!
Fra : Dennis Møller


Dato : 18-12-03 22:42

Hejsa!

Ja, jeg har sat en updaterings SQL string op til en Access
database og den virker bare ikke!
Jeg har copy/pasted fra en af mine andre sider, hvor den virker.
Det kan godt være at jeg bare har set mig blind på en eller anden
lille latterlig fejl, men siden jeg har brugt hele dagen på at
finde den, så giver jeg op og råber om hjælp! :D

strSQL = "Update brugere set "
strSQL = strSQL & "pass = '" & Request.Form("pass") & "' , "
strSQL = strSQL & "adresse = '" & Request.Form("adresse") & "'
, "
strSQL = strSQL & "postnr = '" & Request.Form("postnr") & "' ,
"
strSQL = strSQL & "by = '" & Request.Form("by") & "' , "
strSQL = strSQL & "tlf = '" & Request.Form("tlf") & "' , "
strSQL = strSQL & "mobil = '" & Request.Form("mobil") & "' , "
strSQL = strSQL & "hjemmeside = '" & Request.Form("hjemmeside")
& "' , "
strSQL = strSQL & "email = '" & Request.Form("email") & "' , "
strSQL = strSQL & "fritekst = '" & Request.Form("fritekst") &
"' , "
strSQL = strSQL & "tema = '" & Request.Form("tema") & "' "
strSQL = strSQL & "Where ID = " & Session("ID")

Conn.Execute(strSQL)

Således ser den ud og fejlen kommer selvfølgelig i
udførselslinjen.
I må også gerne gennemse min database for fejl:
http://webh03e.vhweb.dk/database.mdb

Er der nogle ting man bare ikke må kalde sine kolonner i en
Access database? Må felterne i databasen ikke være tomme, hvis
man kører en update på dem? Eller hvad i alverden er min fejl?
Jeg er ved at få grå hår af dette her, skønt jeg kun har en alder
af 16 år (bliver 17 på Søndag :P)!

Please hjælp!
På forhånd tak - Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin Jørgensen (18-12-2003)
Kommentar
Fra : Martin Jørgensen


Dato : 18-12-03 23:03

Hej Dennis

Jeg tror at dit problem er med koden:
strSQL = strSQL & "by = '" & Request.Form("by") & "' , "

Du kan ikke bruge ordet "by" da det er et reseveret ord,
der er en del ord som er reseveret, så som:
by, select, sort, from, where og en del flere.

Mit råd er at ændre "by" til f.eks. "city".


Med venlig hilsen
Martin Jørgensen


Dennis Møller wrote in dk.edb.internet.webdesign.serverside.asp:
> Hejsa!
>
> Ja, jeg har sat en updaterings SQL string op til en Access
> database og den virker bare ikke!
> Jeg har copy/pasted fra en af mine andre sider, hvor den virker.
> Det kan godt være at jeg bare har set mig blind på en eller anden
> lille latterlig fejl, men siden jeg har brugt hele dagen på at
> finde den, så giver jeg op og råber om hjælp! :D
>
> strSQL = "Update brugere set "
> strSQL = strSQL & "pass = '" & Request.Form("pass") & "' , "
> strSQL = strSQL & "adresse = '" & Request.Form("adresse") & "'
> , "
> strSQL = strSQL & "postnr = '" & Request.Form("postnr") & "' ,
> "
> strSQL = strSQL & "by = '" & Request.Form("by") & "' , "
> strSQL = strSQL & "tlf = '" & Request.Form("tlf") & "' , "
> strSQL = strSQL & "mobil = '" & Request.Form("mobil") & "' , "
> strSQL = strSQL & "hjemmeside = '" & Request.Form("hjemmeside")
> & "' , "
> strSQL = strSQL & "email = '" & Request.Form("email") & "' , "
> strSQL = strSQL & "fritekst = '" & Request.Form("fritekst") &
> "' , "
> strSQL = strSQL & "tema = '" & Request.Form("tema") & "' "
> strSQL = strSQL & "Where ID = " & Session("ID")
>
> Conn.Execute(strSQL)
>
> Således ser den ud og fejlen kommer selvfølgelig i
> udførselslinjen.
> I må også gerne gennemse min database for fejl:
> http://webh03e.vhweb.dk/database.mdb
>
> Er der nogle ting man bare ikke må kalde sine kolonner i en
> Access database? Må felterne i databasen ikke være tomme, hvis
> man kører en update på dem? Eller hvad i alverden er min fejl?
> Jeg er ved at få grå hår af dette her, skønt jeg kun har en alder
> af 16 år (bliver 17 på Søndag :P)!
>
> Please hjælp!
> På forhånd tak - Dennis.
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lars Hoffmann (19-12-2003)
Kommentar
Fra : Lars Hoffmann


Dato : 19-12-03 10:03


"Martin Jørgensen" <malle@mail.dk> escribió

> Mit råd er at ændre "by" til f.eks. "city".

Eller endnu bedre: ændre by til [by]



Jens Gyldenkærne Cla~ (19-12-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-12-03 11:04

Lars Hoffmann skrev:

>> Mit råd er at ændre "by" til f.eks. "city".

Hvis man gerne vil holde sig til danske feltnavne, kan man også
benytte "postnr" og "postby".

> Eller endnu bedre: ændre by til [by]

Hurtigere, ja. Bedre - ikke i min bog. Det er bedst at undgå
feltnavne der skal escapes for at virke - så slipper man for at
tænke på om det er nødvendigt at escape eller ej. Man kan
selvfølgelig også vælge at escape alle navne (putte alt i
firkantklammer) og slippe for bekymringer på den måde - men jeg
foretrækker at være fri for at skulle læse og skrive klammerne.
--
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

Lars Hoffmann (19-12-2003)
Kommentar
Fra : Lars Hoffmann


Dato : 19-12-03 13:11

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> escribió

> Hurtigere, ja. Bedre - ikke i min bog. Det er bedst at undgå
> feltnavne der skal escapes for at virke - så slipper man for at
> tænke på om det er nødvendigt at escape eller ej. Man kan
> selvfølgelig også vælge at escape alle navne (putte alt i
> firkantklammer) og slippe for bekymringer på den måde - men jeg
> foretrækker at være fri for at skulle læse og skrive klammerne.

Jeg foretrækker ganske klart at escape alle felter, da det IMHO er den
eneste måde at sikre sig at det er et felt der hentydes til. Yderligerere er
det ved lidt tilvænning nemmere at læse. Der er også et eller andet galt i
at lave en logisk struktur (som f.eks kan være at bruge danske feltnavne) og
så ligepludselig skulle til at bruge bryde strukturen pga af sammenfaldende
navne.
Med venlig hilsen
Lars Hoffmann



Thomas Due (19-12-2003)
Kommentar
Fra : Thomas Due


Dato : 19-12-03 13:24

Lars Hoffmann wrote:

> Jeg foretrækker ganske klart at escape alle felter, da det IMHO er den
> eneste måde at sikre sig at det er et felt der hentydes til.
> Yderligerere er det ved lidt tilvænning nemmere at læse. Der er også
> et eller andet galt i at lave en logisk struktur (som f.eks kan være
> at bruge danske feltnavne) og så ligepludselig skulle til at bruge
> bryde strukturen pga af sammenfaldende navne.

Det er selvfølgelig individuelt, men jeg hælder også mere og mere til
at escape alle feltnavne, og tabelnavne for den sags skyld.

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews version 1.15.8.4

Thomas Due (19-12-2003)
Kommentar
Fra : Thomas Due


Dato : 19-12-03 13:24

Martin Jørgensen wrote:


> Jeg tror at dit problem er med koden:
> strSQL = strSQL & "by = '" & Request.Form("by") & "' , "
>
> Du kan ikke bruge ordet "by" da det er et reseveret ord,
> der er en del ord som er reseveret, så som:
> by, select, sort, from, where og en del flere.
>

Det gælder også ID, jvf.
> > strSQL = strSQL & "Where ID = " & Session("ID")

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews version 1.15.8.4

Lars Hoffmann (19-12-2003)
Kommentar
Fra : Lars Hoffmann


Dato : 19-12-03 20:35

Thomas Due escribió / skrev

> Det g‘lder ogs† ID, jvf.
>> > strSQL = strSQL & "Where ID = " & Session("ID")

Det er jeg nu ikke enig i. ID _skal_ ikke escapes.

Thomas Due (22-12-2003)
Kommentar
Fra : Thomas Due


Dato : 22-12-03 08:16

Lars Hoffmann wrote:

> Thomas Due escribió / skrev
>
> > Det g‘lder ogs† ID, jvf.
> >> > strSQL = strSQL & "Where ID = " & Session("ID")
>
> Det er jeg nu ikke enig i. ID skal ikke escapes.

Jeg mener nu ret bestemt at jeg har haft problemer på MS SQL 2000 hvis
den ikke blev det.

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews version 1.15.8.4

Lars Hoffmann (22-12-2003)
Kommentar
Fra : Lars Hoffmann


Dato : 22-12-03 09:49

"Thomas Due" <tdue@mail_remove_.dk> escribió

> Jeg mener nu ret bestemt at jeg har haft problemer på MS SQL 2000 hvis
> den ikke blev det.


Følgende virker både i access og i mssql server 2K:

Select * from users where id = 2



Martin Jørgensen (18-12-2003)
Kommentar
Fra : Martin Jørgensen


Dato : 18-12-03 23:05

Hej Dennis

Jeg tror at dit problem er med koden:
strSQL = strSQL & "by = '" & Request.Form("by") & "' , "

Du kan ikke bruge ordet "by" da det er et reseveret ord,
der er en del ord som er reseveret, så som:
by, select, sort, from, where og en del flere.

Mit råd er at ændre "by" til f.eks. "city".

HUSK: at ændre i både databasen og på siden.


Med venlig hilsen
Martin Jørgensen


Dennis Møller wrote in dk.edb.internet.webdesign.serverside.asp:
> Hejsa!
>
> Ja, jeg har sat en updaterings SQL string op til en Access
> database og den virker bare ikke!
> Jeg har copy/pasted fra en af mine andre sider, hvor den virker.
> Det kan godt være at jeg bare har set mig blind på en eller anden
> lille latterlig fejl, men siden jeg har brugt hele dagen på at
> finde den, så giver jeg op og råber om hjælp! :D
>
> strSQL = "Update brugere set "
> strSQL = strSQL & "pass = '" & Request.Form("pass") & "' , "
> strSQL = strSQL & "adresse = '" & Request.Form("adresse") & "'
> , "
> strSQL = strSQL & "postnr = '" & Request.Form("postnr") & "' ,
> "
> strSQL = strSQL & "by = '" & Request.Form("by") & "' , "
> strSQL = strSQL & "tlf = '" & Request.Form("tlf") & "' , "
> strSQL = strSQL & "mobil = '" & Request.Form("mobil") & "' , "
> strSQL = strSQL & "hjemmeside = '" & Request.Form("hjemmeside")
> & "' , "
> strSQL = strSQL & "email = '" & Request.Form("email") & "' , "
> strSQL = strSQL & "fritekst = '" & Request.Form("fritekst") &
> "' , "
> strSQL = strSQL & "tema = '" & Request.Form("tema") & "' "
> strSQL = strSQL & "Where ID = " & Session("ID")
>
> Conn.Execute(strSQL)
>
> Således ser den ud og fejlen kommer selvfølgelig i
> udførselslinjen.
> I må også gerne gennemse min database for fejl:
> http://webh03e.vhweb.dk/database.mdb
>
> Er der nogle ting man bare ikke må kalde sine kolonner i en
> Access database? Må felterne i databasen ikke være tomme, hvis
> man kører en update på dem? Eller hvad i alverden er min fejl?
> Jeg er ved at få grå hår af dette her, skønt jeg kun har en alder
> af 16 år (bliver 17 på Søndag :P)!
>
> Please hjælp!
> På forhånd tak - Dennis.
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (18-12-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-12-03 23:55

Dennis Møller skrev:

> Det kan godt være at jeg bare har set mig blind på en eller anden
> lille latterlig fejl, men siden jeg har brugt hele dagen på at
> finde den, så giver jeg op og råber om hjælp! :D

Prøv at tage et kig her: <http://asp-faq.dk/article/?id=41>.

> Conn.Execute(strSQL)
>
> Således ser den ud og fejlen kommer selvfølgelig i
> udførselslinjen.

Fint nok - men _hvilken_ fejl?

Martin Jørgensen har givet et godt bud på fejlen, men det er
_meget_ lettere at svare hvis du fortæller hvilken fejlmeddelelse
du får - og skriver den færdige sql-sætning ud sådan som det er
beskrevet på faq-artiklen ovenfor.

> I må også gerne gennemse min database for fejl:
> http://webh03e.vhweb.dk/database.mdb

Som regel er fejlen i asp-koden (men ellers en udmærket ide at
linke til den)

> Er der nogle ting man bare ikke må kalde sine kolonner i en
> Access database?

Der er i hvert fald en del ord det er meget upraktisk at bruge som
feltnavne. Nogle af dem der tit volder problemer er By (der er et
reserveret ord i sql-sproget) og Date (der er en funktion i
Access).

Man kan undgå at feltnavne bliver misfortolket som reserverede ord
ved at sætte dem i klammer - fx [By] og [Date] når man medtager dem
i sql-sætninger. Men det er bedst helt at undgå den slags
feltnavne.
--
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste