webForumDet fria alternativet

Update

18 svar · 268 visningar · startad av diablo

diabloMedlem sedan aug. 2000113 inlägg
#1

Hallå hallå!

Hur sjutton använder man SQL satsen UPDATE om man vill uppdatera flera poster samtidigt??

AGMedlem sedan mars 20001 266 inlägg
#2

Inte alls svårt:

SQL = "UPDATE tabell SET namn = '" & Request.Form("namn") & "', Telefonbok = '" & Request.Form("telefonbok") & "', Fax = '" & Request.Form("fax") & "', Epost = '" & Request.Form("epost") & "' WHERE id = '" & Request("id") & "'"

Nåt sånt borde fungera.

Andreas

diabloMedlem sedan aug. 2000113 inlägg
#3

Jo jag har testat de där, men jag får bara upp felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/community/updateinfo.asp, rad 14

Ni kanske kan se felet:

Kod
-------------------------

<%

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (\*.mdb)}; DBQ=" & Server.MapPath("data/users.mdb"))

SQL = "UPDATE users SET name='" & Request.Form("name") & "',alder='" & Request.Form("alder") & "',e-mail='" & Request.Form("email") & "',bor='" & Request.Form("bor") & "',ICQ='" & Request.Form("icq") & "',info='" & Request.Form("info") & "' WHERE ID = "& Session("ID") &" "

Connect.Execute(SQL)
Connect.Close

%>

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

@ndersMedlem sedan juni 200032 969 inlägg
#4

du måste alltså se till att du inte låser upp dig med where-satsen. id är alltså inte bra att ha i where-satsen på det viset. prova istället between.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

diabloMedlem sedan aug. 2000113 inlägg
#5

hehe, ni får ursäkta att jag inte e så duktig på de här men, between ??

hur funkar det då?

@ndersMedlem sedan juni 200032 969 inlägg
#6

gör en utskrift av din färdiga sql-fråga innan du gör connect.execute på den, och släng upp den här.

jag är inte riktigt heller med på vad du menar med din första fråga :q

(sen är det faktiskt lite knäppt att mitt 666:e inlägg i webforum råkade hamna på en fråga ställd av en 'diablo' :) )

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

diabloMedlem sedan aug. 2000113 inlägg
#7

Asså jag har först en sida där användaren får skriva in sitt namn, email, ICQ osv. Sedan skickas den info som som skrivits in till updateinfo.asp!
Där ska alltså den info som användaren skrivit in uppdateras!

Och som jag fattar så räcker det med den kod som jag skrev här lite högre upp på sidan! Men som sagt så blir det nåt fel meddelande som jag inte försåtr mig på!

Hehe, hoppas det inte blev allt för omöjligt att förstå nu! :)

@ndersMedlem sedan juni 200032 969 inlägg
#8

du menar alltså att du vill uppdatera flera fält, inte flera poster som du skrev? har jag rätt?

vad har du för datatyp på de olika fälten i din tabell?

det vore också tacksamt om du skrev ut sql frågan till browsern med response.write sql innan du gör connect.execute (sql).

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

diabloMedlem sedan aug. 2000113 inlägg
#9

Ja precis, de va flera fält jag menade!
Dom data typer jag använder är PM, text och tal!

Text för name och tal för ålder!
Resten är PM ..

Meddelande som kommer upp om jag skriver response.write sql är:

UPDATE users SET name='Per Olle',alder='12',e-mail='per@fredde.net',bor='fdfd',ICQ='54845',info=' dsdsds ' WHERE ID = 3
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/community/updateinfo.asp, rad 14

Hoppas ni kan lösa de här!
Jag kan använda mig av ett annat sätt, utan SQL men de känns inte som att de e lika bra! ..

@ndersMedlem sedan juni 200032 969 inlägg
#10

om ålder är tal skall du inte ha apostrofer runt värdet.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

diabloMedlem sedan aug. 2000113 inlägg
#11

Hmm, okej, asså om jag fatta rätt så menar du att det ska stå
alder = "& Request.Form("alder") &"

asså utan '' ..!

I sånna fall blir det samma fel, alltså:

UPDATE users SET name='Per Olle', alder=12, e-mail='per@fredde.net', bor='fdfd', ICQ='34344', info=' fdfdfd' WHERE ID = 3
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/community/updateinfo.asp, rad 14

..

emissionMedlem sedan dec. 19996 721 inlägg
#12

Samma sak med ICQ-numret?

diabloMedlem sedan aug. 2000113 inlägg
#13

Nope, de e PM ...

emissionMedlem sedan dec. 19996 721 inlägg
#14

Oj, du räknar med rejäl tillväxt för ICQ, om du väljer PM för iCQ-nummer ;)

Sätt [] runt alla kolumnnamn.

SET [name]=...... osv.

diabloMedlem sedan aug. 2000113 inlägg
#15

Hehe!

Ja du, nu blev de iaf ett annat fel:

UPDATE users SET [name]='', [info]='dsdsdsds', [e-mail]='per@fredde.net', [alder]=23, [ICQ]='323232', [bor]='Kkk' WHERE id=3
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 6.

/community/updateinfo.asp, rad 20

emissionMedlem sedan dec. 19996 721 inlägg
#16

Och om name får ett värde?

diabloMedlem sedan aug. 2000113 inlägg
#17

hehe, blir samma fel igen då!

asså Expected 6 ...

diabloMedlem sedan aug. 2000113 inlägg
#18

Asså, ja nu helt plötsligt funkar det!
Utan att jag ändrade nåt i koden!

=) .. jeje!

Tack för all hjälp!!

Mr NilsMedlem sedan jan. 2000640 inlägg
#19

Tjena, tänkte bara tacka er för den här tråden.. klamrarna löste mitt jobbiga problem =)

Hejdå!

------------------
/Nils Wikberg
-"Law and order are for weak minds. Chaos requires management.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)