webForumDet fria alternativet

Update

ASP

18 svar · 270 visningar · startad av diablo

Medlem sedan aug. 2000113 inlägg
Frågan#1

Hallå hallå!

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

Medlem 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

Medlem 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

%>

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

Medlem sedan juni 200032 967 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>

Medlem 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å?

Medlem sedan juni 200032 967 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>

Medlem 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! :)

Medlem sedan juni 200032 967 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>

Medlem 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! ..

Medlem sedan juni 200032 967 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>

Medlem 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

..

Medlem sedan dec. 19996 721 inlägg
#12

Samma sak med ICQ-numret?

Medlem sedan aug. 2000113 inlägg
#13

Nope, de e PM ...

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

Medlem 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

Medlem sedan dec. 19996 721 inlägg
#16

Och om name får ett värde?

Medlem sedan aug. 2000113 inlägg
#17

hehe, blir samma fel igen då!

asså Expected 6 ...

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

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

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)