strSQL = "UPDATE members SET ID = '"& ID &"', navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = '"& team &"' WHERE id = '"& ID &"'"
Det kan dog være du skal droppe din "SET ID = '"& ID &"'" - jeg kan ikke helt huske om access er glad for at man ændrer et autonummer-felt, som jeg går ud fra det er...
<% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("members.mdb") Conn.Open DSN
id = request("ID") navn = request("navn") nick = request("nick") email = request("email") city = request("city") bday = request("bday") connnection = request("connection") billedeurl = request("billedeurl") funktion = request("funktion") aktiv = request("aktiv") os = request("os") cpu = request("cpu") mouse = request("mouse") headset = request("headset") rifle = request("rifle") pistol = request("pistol") map = request("map")
' SQL sætning opbygges strSQL = "UPDATE members SET id = '"& id &"', navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = '"& team &"', WHERE id = '"& ID &"'"
' SQL sætning eksekveres Conn.Execute(strSQL)
' Luk databaseforbindelse Conn.Close Set Conn = Nothing %>
Får jeg nu denne her fejl :
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen. /web/fishhouse/v30/members/edit_member_to_db.asp, line 38
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket. /web/fishhouse/v30/members/edit_member_to_db.asp, line 39
Ved denne SQL string :
strSQL = "UPDATE members SET navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = "& team &" WHERE ID = '"&id&"'"
Håber der er mere hjælp at hente :)
ID er autonummerering, team er tal så der har jeg fjernet ''
strSQL = "UPDATE members SET navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = #"& bday &"#, connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = "& team &" WHERE ID = "& id
Jeg går ud fra, at bday er dato, og ikke tekst? Og så har jeg fjernet '' om din slut-id.
Prøv evt. at lave en:
Response.Write strSQL Response.End
lige efter du har genereret SQL'en. Post så hvad den skriver... Fjern derefter "Response.End" og fortæl om den giver en fejl dér...
UPDATE members SET navn = 'Michael Hermansen', nick = ')<(((((*> ScUm^', email = 'scum@theforge.dk', city = 'Odense', bday = '24-07-1979', connection = '1024/256 Kb/s', billedeurl = 'scum.jpg', funktion = 'Webmaster/ Player', aktiv = 'Yes', os = 'Windows XP', cpu = 'Athlon XP, 2400 Mhz', mouse = 'Logitech Optical MX300', headset = 'Microsoft Sidewinder', rifle = 'A1 Arctic Warfare/Magnum', pistol = 'H&K USP .45 Tactical', map = 'de_prodigy', team = 1 WHERE ID =
->
Med Response.Write strSQL
Fejltype: 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 "ID =". /web/fishhouse/v30/members/edit_member_to_db.asp, line 44
Din request("ID") er tom - check om du i din formular kalder den ID, med store bogstaver - sørg i hvert fald for at værdierne alle steder du bruger dem (både på formularen og asp-siden) står 100% ens.
Ellers ser resten umiddelbart fint ud - check dog om bday-feltet er tekst eller dato! Hvis det er dato, skal det omkranses af ## i stedet for ''.
den kalder den ID som det medlem man vil editere har fået via Autonummerering. fks. edit_member.asp?id=13 derefter tager den de info der ligger i databasen under dette ID og putter det ind i de felter der kan redigeres i.
Jeg har osse på et tidspunkt i mine mange forsøg på at få dette til at virke fået en fejl med den ikke kunne opdatere ID'en da denne ikke var opdaterbar.
Jeg ved virkelig ikke hvad der er galt med den ID.
Hvis du er interesseret kan jeg ZIPPE mine filer og lægge dem op til Download hvis det er.
Som jeg nævnte tidligere, så er din variabel med ID'et tom - derfor får du fejlen om, at der mangler en operator i udtrykket "ID =".
Løsningen er at checke, at alle steder du bruger ID'et - dvs. i formularen, linket, asp-siden (request'en), og databasen, at de alle hedder nøjagtigt det samme - altså uden forskel i store/små bogstaver. Så burde det virke...
allright, jeg vil tjekke det ud så :) Du skal ihvertfald have tusind tak for din hjælp.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.