M Mav Medlem sedan juni 2000 117 inlägg Frågan 23 aug. 2000 09:20 #1 Har följande kod som inte vill fungera o uppdatera databasen.
Rad 20 är fel.
rs.Open SQL, fritid, adOpenDynamic
Övrig kod ser ut som följer.
<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; (*.mdb)}; DBQ=c:\db\adressbok.mdb"%> <%
SQL = "UPDATE adressbok SET WHERE Kundnr = '" & Request("Kundnr") & "'"
rs.Open SQL, fritid, adOpenDynamic
rs("namn")=Request.Form("namn")
rs("Telefonbok")=Request.Form("telefonbok")
rs("Fax")=Request.Form("fax")
rs("Epost")=Request.Form("epost")
osv......
rs.Update
rs.Close
%>
Tacksam för all hjälp jag kan få.
Vide Medlem sedan dec. 1999 8 577 inlägg Testa att göra samma fast utan ett recordset... recordset är helt onönödiga när du skall uppdatera...
<%
Set fritid = Server.CreateObject("ADODB.Connection")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; (*.mdb)}; DBQ=c:\db\adressbok.mdb"
SQL = "UPDATE adressbok SET namn = '" & =Request.Form("namn") & "', Telefonbok = '" & Request.Form("telefonbok") & "', Fax = '" & Request.Form("fax") & "', Epost = '" & Request.Form("epost") & "' WHERE Kundnr = '" & Request("Kundnr") & "'"
fritid.execute(SQL)
%>
M Mav Medlem sedan juni 2000 117 inlägg Testade det du föreslog men fick samma felmeddelande som tidigare.
Rad 18
fritid.execute(SQL)
Något förslag??
@nders Medlem sedan juni 2000 32 967 inlägg skriv ut sql-frågan med response.write innan du gör execute på den så ser man kanske att det är något värde som saknas.
A AG Medlem sedan mars 2000 1 266 inlägg Ta bort = tecknet i koden
& =Request.Form("namn") &
Så skall det inte vara.
Om det inte fungerar testa då att skriva ut sql frågan som @nders sa.
Andreas
M Mav Medlem sedan juni 2000 117 inlägg = tecknet såg jag själv. Hur skriver jag för att skriva ut sql frågan. Är lite nollställd just nu ;-)
Tack för all hjälp hittils
A AG Medlem sedan mars 2000 1 266 inlägg Innan fritid.execute(SQL)
skriver du
response.write sql
Andreas
M Mav Medlem sedan juni 2000 117 inlägg Tack, men det hjälpte inte heller. Den skriver ut texten men sen uppstår samma fel igen. Vad kan det bero på?
@nders Medlem sedan juni 2000 32 967 inlägg det är meningen att den ska skriva ut texten (alltså sql-frågan). det är den vi vill titta på. så om du kopierar den från din webläsare (alltså den färdiga sql-frågan), och lägger upp den här så hjälper vi dig gärna.
M Mav Medlem sedan juni 2000 117 inlägg Så här ser det ut.
UPDATE adressbok SET Kedjanamn = '', Telefonbok = '+46(0)31-111111', Fax = '+46(0)31-111111', Epost = 'epost@ote1.se', Hemsidaurl = 'www.ote1.se', Kedjaurl = 'update testupdate test', Infoblock1 = 'Infoblock1 . Kdkdkdkdkdkdkdkdk kdkdk kdkd dfg dfg dfgd fg dfgd fg sfghs ths rthsr ths thsrths rthsrt hsrt hyjfghdsfths rthsrthsr thsr ths rths rths h', Infoblock2 = 'Infoblock2. Kdkdkdkdkdkdkdkdk kdkdk kdkd', Prisblock1 = 'Prisblock1update testupdate testupdate test', Prisblock2 = 'Prisblock2 update testupdate testupdate test', Ovrigtblock1 = 'update testupdate testupdate testupdate test', Vagbeskrblock1 = 'Vägbeskrivning1', WHERE Kundnr = ''
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck.
/admin/update_ok.asp, rad 19
Rad 19 ser ut så här
fritid.execute(SQL)
@nders Medlem sedan juni 2000 32 967 inlägg och hur ser tabellen ut? vad har du för datatyper på de olika fälten?
A AG Medlem sedan mars 2000 1 266 inlägg Byt ut WHERE Kundnr = '" & Request("Kundnr") & "'" till
WHERE Kundnr = " & Request("Kundnr")
Testa det , antar att kundnr är ett tal.
Har med @nders fråga att göra.
Andreas
M Mav Medlem sedan juni 2000 117 inlägg Samtliga fält är text fält även kundnr.
Provade att ändra WHERE....
men fick samma fel som tidigare. Provade även att ändra Kundnr fältet i databasen till tal men fick samma fel som vanligt.
A AG Medlem sedan mars 2000 1 266 inlägg Ok
Då skulle jag vilja att du klipper in den koden du använder. Så vi får syudera den igen :)
Andreas
M Mav Medlem sedan juni 2000 117 inlägg Så här ser det ut:
<body>
<%
Set fritid = Server.CreateObject("ADODB.Connection")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\db\adressbok.mdb"
SQL = "UPDATE adressbok SET Kedjanamn = '" & Request.Form("namn") & "', Telefonbok = '" & Request.Form("telefonbok") & "', Fax = '" & Request.Form("fax") & "', Epost = '" & Request.Form("epost") & "', Hemurl = '" & Request.Form("hemurl") & "', Kedurl = '" & Request.Form("kedurl") & "', Infoblock1 = '" & Request.Form("infoblock1") & "', Infoblock2 = '" & Request.Form("infoblock2") & "', Prisblock1 = '" & Request.Form("prisblock1") & "', Prisblock2 = '" & Request.Form("prisblock2") & "', Ovrigtblock1 = '" & Request.Form("ovrigtblock1") & "', Vagbeskrblock1 = '" & Request.Form("vagbeskrblock1") & "', WHERE Kundnr = " & Request("Kundnr")
response.write sql
fritid.execute(SQL)
%>
<b>Uppgifterna är nu uppdaterade</b>
</body>
E emission Medlem sedan dec. 1999 6 721 inlägg Det verkar som om request("Kundnr") inte innehåller något.
M Mav Medlem sedan juni 2000 117 inlägg I databasen innehåller det ett nummer
A AG Medlem sedan mars 2000 1 266 inlägg Det emission menar är om du skickar men nåt värde från sidan innan.
typ:
<input type="hidden" name="Kundnr" value="<%=rs("Kundnr")%>">
Sätt sen fälttyp till tal på Kundnr.
Andreas
M Mav Medlem sedan juni 2000 117 inlägg Första sidan är en login sida. Sen kommer man till en sida där alla uppgifter finns. Sen klickar man sig vidare till update sidan där man kan göra ändringar.
Länken från "sid2" ser ut så här:
För att göra ändringar <A HREF=update.asp?ID=<%=rs("Kundnr")%>>klicka här.</A>
Det är det värde som skickas vidare till update sidan som inte vill fungera när man klickar på "Updatera".
A AG Medlem sedan mars 2000 1 266 inlägg Ok, hur ser koden ut på sidan med
För att göra ändringar <A HREF=update.asp?ID=<%=rs("Kundnr")%>>klicka här.</A> Skulle vilja ta en titt på asp koden på den sidan.
Andreas