/ 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
Problemer med SQL Update
Fra : Jakob Munck


Dato : 26-07-01 22:32

Jeg forsøger at opdatere 3 felter i en tabel v.hj.a. en SQL-kommando, men
jeg gør noget forkert. Her er min kode, og den fejlmelding jeg får:

----------------------------------------------
......
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") &
"'"
rs.open sql, conn, 1, 3

Set rs = Conn.Execute(sql)

if Request.ServerVariables("REQUEST_METHOD") = "POST" then

brgn = session("brugernavn")

brugeremail2 = Request("brugeremail")
brugertelefon2 = Request("brugertelefon")
brugertekst2 = Request("brugertekst")


sql2 = "UPDATE bruger " & _
"SET brugeremail = 'brugeremail2' " & _
"brugerTelefon = 'brugertelefon2' " & _
"brugerTekst = 'brugertekst2' " & _

"WHERE brugerNavn='" & brgn & "'"


Set rs = Conn.Execute(sql2)

-------------------------------------

Her er fejlmeldingen:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der
mangler en operator. i forespørgselsudtrykket "'brugeremail2' brugerTelefon
= 'brugertelefon2' brugerTekst = 'brugertekst2'".
/Ansgar/www/artcom/artcom.asp, line 1930 (den sidst viste linie)
---------------------------------------------

Jeg har måske flere problemer her, men i hvert fald er der noget galt med
sql2.

Jeg håber på kyndig vejledning og gode råd.

v.h.
Jakob Munck




 
 
Jesper Stocholm (26-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 26-07-01 22:28

"Jakob Munck" <jakob.munck@email.dk> wrote in
news:9jq0ok$1jvg$1@news.cybercity.dk:

> Jeg forsøger at opdatere 3 felter i en tabel v.hj.a. en SQL-kommando,
> men jeg gør noget forkert. Her er min kode, og den fejlmelding jeg får:
>
[snip]
>
> if Request.ServerVariables("REQUEST_METHOD") = "POST" then
>
> brgn = session("brugernavn")
>
> brugeremail2 = Request("brugeremail")
> brugertelefon2 = Request("brugertelefon")
> brugertekst2 = Request("brugertekst")
>
>
> sql2 = "UPDATE bruger " & _
> "SET brugeremail = 'brugeremail2' " & _
> "brugerTelefon = 'brugertelefon2' " & _
> "brugerTekst = 'brugertekst2' " & _
>
> "WHERE brugerNavn='" & brgn & "'"
>

din SQL-sætning skal opbygges på en lidt anden måde. Det skal være således:

sql2 = "UPDATE bruger " &_
"SET brugeremail = '" & brugeremail2 & "'," &_
"brugerTelefon = '" & brugertelefon2 & "'," &_
"brugerTekst = '" & brugertekst2 & "'," &_
"WHERE brugerNavn = '" & brgn & "'"
>

Læg mærke til, at dine variable flettes ind i din SQL-sætning på en anden
måde end dit forslag. Som jeg ser det, så ville du med din kode komme til at
indsætte tekststrengen "brugeremail2" i feltet brugeremail - i stedet for
værdien af variablen 'brugeremail2'. Læg også mærke til, at der er et komma
efter hver linie.

> Set rs = Conn.Execute(sql2)
>

det er nok at skrive

con.Execute(sql2)

Du modtager jo ikke noget resultat efter afviklingen af forespørgslen.

Ellers kan du komme langt med fejlretningen ved - i din testfase - at skrive

response.write sql2
response.end

efter din sammensætning af din SQL-streng. Så er jeg sikker på, at du i
hvert fald ville have opdaget at du forsøgte at indsætte de forkerte data.
Din database modtager kun SQL-strengen - og har ikke mulighed for at vide,
at fx 'brugeremail2' i din ASP-kode indholder noget fra en formular.

Og - nu ved jeg ikke hvor meget af din kode du har sendt med - men din IF-
sætning

if Request.ServerVariables("REQUEST_METHOD") = "POST" then

mangler vist at blive afsluttet med et "END IF"

--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp
- Jesper Stocholm - http://stocholm.dk

Jakob Munck (27-07-2001)
Kommentar
Fra : Jakob Munck


Dato : 27-07-01 09:02


Belært af vejledning har jeg nu lavet min sql-kode sådan:

------------------------------------

sql2 = "UPDATE bruger " &_
"SET brugeremail = '" & brugeremail2 & "'," &_
" brugerTelefon = '" & brugertelefon2 & "'," &_
" brugerTekst = '" & brugertekst2 & "'," &_
" WHERE brugerNavn = '" & brgn & "'"

--------------------------

Tak for vejledningen. Jeg har nu rettet koden, men den giver stadig fejl.
Når jeg tester sql-sætningen ved at skrive "response.write sql2", kommer der
følgende output:

-----------------------------
UPDATE bruger SET brugeremail = 'asdf@asdf.dk', brugerTelefon = '87654377',
brugerTekst = 'asdf asdf asda sfa sdfasd fasdf asd adfa sdfasd fasdf', WHERE
brugerNavn = 'Rossing'
---------------------------------------

Men der må være en fejl, for når jeg forsøger at opdatere db får jeg
følgende fejlmelding:

---------------------------
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
UPDATE-sætningen.
/Ansgar/www/artcom/artcom.asp, line 1966 ("Conn.execute (sql2)")
--------------------------

Jeg kan ikke se om det viste output er i orden. De viste data er ok, men
mangler der et komma efter "bruger" eller er der en fejl et andet sted?

Jeg bliver heller ikke meget klogere af Microsoft's fejlmelding, der jo bare
siger, at der er en syntaksfejl. Men hvor?


v.h.
Jakob Munck




Jesper Stocholm (27-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 27-07-01 08:54

Jakob Munck wrote in dk.edb.internet.webdesign.serverside.asp:
> Belært af vejledning har jeg nu lavet min sql-kode sådan:
>
[snip]
>
> -----------------------------
> UPDATE bruger SET brugeremail = 'asdf@asdf.dk', brugerTelefon = '87654377',
> brugerTekst = 'asdf asdf asda sfa sdfasd fasdf asd adfa sdfasd fasdf', WHERE
> brugerNavn = 'Rossing'
> ---------------------------------------
>
> Men der må være en fejl, for når jeg forsøger at opdatere db får jeg
> følgende fejlmelding:
>
> ---------------------------
> [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
> UPDATE-sætningen.
> /Ansgar/www/artcom/artcom.asp, line 1966 ("Conn.execute (sql2)")
> --------------------------
>

Ups ... der var en fejl i min vejledning ... der skal ikke være et komma inden
WHERE.

> Jeg kan ikke se om det viste output er i orden. De viste data er ok, men
> mangler der et komma efter "bruger" eller er der en fejl et andet sted?
>
> Jeg bliver heller ikke meget klogere af Microsoft's fejlmelding, der jo bare
> siger, at der er en syntaksfejl. Men hvor?
>

Ja ... deres fejlmedelelser er ikke altid lige gode ...

På MSDN er der en god reference til SQL (SQL Server) ... og hvis du kan lide at
læse syntaks-diagrammer/referencer, så kig på
http://msdn.microsoft.com/library/en-us/tsqlref/ts_ua-uz_82n9.asp?frame=true

Nederst er der nogle eksempler på, hvordan man kan bruge UPDATE. Vær dog
opmærksom på, at det ikke er referencen til Access SQL - men den kan give en
idé om, hvad man kan.

Jeg har ikke lige en specifik reference til Access SQL, men hvis andre ligger
inde med den, så sig blot til.

Jesper Stocholm
http://stocholm.dk

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

Jakob Munck (27-07-2001)
Kommentar
Fra : Jakob Munck


Dato : 27-07-01 09:51

Tak til Jesper.

det var lige det der komma, der skulle være, så kører det.

v.h.
Jakob Munck




Jakob Munck (27-07-2001)
Kommentar
Fra : Jakob Munck


Dato : 27-07-01 09:53

> det var lige det der komma, der skulle være, så kører det.
>

Trykfejl !

Her skulle have stået: "der skulle væk", som jeg var blever rådet til.


jm



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

Månedens bedste
Årets bedste
Sidste års bedste