Hallå hallå!
Hur sjutton använder man SQL satsen UPDATE om man vill uppdatera flera poster samtidigt??
18 svar · 268 visningar · startad av diablo
Hallå hallå!
Hur sjutton använder man SQL satsen UPDATE om man vill uppdatera flera poster samtidigt??
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
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
%>
-------------------------
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>
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>
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! :)
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>
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! ..
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>
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
..
Samma sak med ICQ-numret?
Nope, de e PM ...
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.
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
Och om name får ett värde?
Asså, ja nu helt plötsligt funkar det!
Utan att jag ändrade nåt i koden!
=) .. jeje!
Tack för all hjälp!!
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.