Response.Write("UPDATE tabel SET box='"&Request.Form("box")&"' WHERE Counter=16")
...bara för att se vad den skriver ut. För övrigt bör du escape'a datan innan du stoppar in den i databasen. Folk kan ju skriva vade de vill i fältet box, tex något som innehåller ' och på så vis avslutar strängen, för att sedan skriva in egen SQL-kod.
Var du får för fel med Object Required så hade det varit ännu enklare att veta vilken rad du få felet på, men ditt första problem är med stor sannolikhet att du inte har rättigheter att skriva till din databas: http://support.microsoft.com/kb/175168
Så sätt IUSR_<serverNamn> har rättigheter att skriva till din access databas.
Måste sno denna tråd! Vill inleda me att säga att jag programmerat ASP för ca 6-7 år sedan men har för länge seda migrerat till LAMP. Oavsett vilket så gjorde jag ett arbete åt ett företag kring 2002 där jag givetvis använda ASP och Access-databaser eftersom det då var det enda jag kunde. I veckan fick jag ett mail från detta företag att de inte längre kan lägga till eller ta bort/uppdatera information som går mot databasen. Jag testade själv och mycket riktigt har jag fått detta fel.
Microsoft JET Database Engine error '80004005'
Operation must use an updateable query.
/minfil.asp, line 123
När jag googlar på detta så hittar jag bara en enda lösning på samtliga sidor - rättigheter. Det enda som står är att det skulle saknas skrivrättigheter. Hur dessa rättigheter helt random skulle förändrats vet jag inte, men må så vara. Eftersom att företaget inte har en egen server utan hyr ett webhotell kan jag inte ändra användarna för mappen utan bara sätta rättigheter. Jag testade att ändra rättigheter till 777 så samtliga användare ska kunna skriva, men det funkar ändå inte. Det som slår mig är om det är så att jag faktiskt måste lägga till användaren IUSR_ på något vis, men jag vet ju varken vad datornamnet heter, och det finns inte heller någon kontrollpanel för att ändra detta. Ska jag behöva maila de som hostar hotellet? Eller kan något annat vara fel? Kan det inte vara något annat än rättigheter, den står ju nu som 777 nu?
Bifogar min kod också. Tacksam för snabbt svar!
Cnnstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.Mappath("mapp/data.mdb") & ";"
set Cnn = Server.CreateObject("adodb.connection")
Cnn.open Cnnstr
SQL = "INSERT INTO info(datum,info) VALUES('" & Request.Form("datum") & "','" & Request.Form("info") & "')"
Cnn.Execute(SQL)
Min SQL-sats skrivs ut på följande vis om jag visar den efter jag fyllt i värden:
INSERT INTO info(datum,info) VALUES('Test','Test')
Igen, påminner om att allt detta fungerat klockrent i ungefär 6 år.
Sätt rättigheterna på din databas, inte asp filerna. Kontakta webbhotellet för att fixa rättigheterna eller placera in i mappen på webbhotellet som de har satt rättigheterna redan.
Givetvis ändrar jag ju rättigheterna på mappen min databas är i och min databas. Just nu har jag rwxrwxrwx (777) på både mappen och filen.
Är det troligt att webhotellet har ändrat rättigheter på min mapp bara sådär? Har ju fungerat över 5 år.
EDIT: Sätter rättigheterna via en FTP-klient eftersom det är den enda accessen mot filerna jag har. Men funkar gör det onekligen om jag kollar från en annan klient senare. Kan givetvis dubbelkolla genom att skriva ett script som laddar upp en fil till mappen, men det känns onödigt.
EDIT2: Mappstrukturen när man ansluter mot FTPn är följande
databases domain.se
log
I domain.se ligger mina filer. Där i ligger en mapp med privilegierna 777 som heter mapp. I den mappen ligger min databas.mdb som har privilegierna 777.
Har testat chmoda databases i root till 777 och ange sökvägen ../databases/databas.mdb (som fortfarabde är satt till 777) utan förändring. Känns ju sjukt konstigt att en mapp skapad av de som äger domänen med namn databases ska ha fel rättigheter.
Om webbhotellet har uppgraderat din server så kan de självklart har missat det, vilket webbhotell kör du med? Visa webbhotell har specifika mappar för access databaser som endast där har rättigheterna för IUSR_<datornamn>, kontakta dom och checkar av med dom.
Köpte det av gate9 som blev neno som numera är Crystone. De har inte gjort någon uppdatering vad jag vet om, men de hade en drift på deras jupiterserver nyligen. Däremot har det fungerat efter det.
Jaja, se min EDIT2 i inlägget ovan för dedikerade mappar för databaser med rättigheter för IUSR_NM
Satt precis och svor över att jag glömde ringa Crystone idag. Istället så skulle jag bara dubbelkolla om problemet kvarstod... Vilket det såklart inte gjorde.
Jag satt fan länge igår och gjorde allt som var tänkbart, men inget funkade, och idag plötsligt så funkar det smärtfritt. Det _måste_ vara Crystone som fuckar med mig. :)
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849