Har en enkel fungerande ASP lösning som jobbar mot en Accessdatabas. Nu har sajten flyttats till en ny server och det går inte att skriva till databasen längre. Funkar att läsa från den. Databasen har fått skrivrättigheter.
Enda tipset från webbhotellets support är "Observera att ni ska använda funktioner som stöds av Windows 2008 r2 iis 7.5"
Vad är det i ASP koden som ska skrivas om? Har letat lite på nätet men inte lyckats hitta något.
Så här ser "sparafilen" ut:
<%option explicit%>
<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Dim path
path = Server.MapPath("db.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & path
Dim datum,rubrik,nyhetstext
datum = Request.Form("datum")
rubrik = Request.Form("rubrik")
nyhetstext = Request.Form("nyhetstext")
Dim strSQL
strSQL = "INSERT INTO TabNyheter(datum,rubrik,nyhetstext) VALUES('" & datum & "','" & rubrik & "','" & nyhetstext & "')"
Dim RS
Set RS=Conn.Execute(strSQL)
%>
<%
Conn.Close
Set RS = Nothing
Set Conn = Nothing
Response.Redirect "lista_innehall.asp"
%>
When you are deploying a classic ASP application that uses an Access database you may see this error because the lock file for the Access database cannot be created. To further explain this scenario: Access databases are kept in files that use an .MDB file name extension. When you try to add to the database or update the data, the Microsoft JET database engine attempts to create a lock file with that uses an .LDB file name extension. If the Access database is stored within the content area of your Web site, by default the JET database engine will not have sufficient access permissions to update the database and you will see the following error message displayed in a Web browser:
är det hos oss(binero) du ligger? i så fall pm:a mig länk till sidan och ditt kundnummer. Det skulle kunna vara så att om du ligger i 2.0 så kan felet bero på att allt är lastbalanserat och därför låser sig databasen när den accessas från 2 noder, en nod kan då inte arbeta korrekt mot databasen. En lösning är då att du använder dig av MS SQL som ingår.
Sajten ligger hos Svenska Domäner.
När jag nu testar i Firefox får jag de här felmeddelandena:
Vid försök att lägga upp en ny post:
Microsoft JET Database Engine error '80004005'
Operation must use an updateable query.
/db_resor/save.asp, line 25
Rad 25
Dim RS
Set RS=Conn.Execute(strSQL)
Radering av post:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.
/db_resor/radera.asp, line 19
"Raderafilen"
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb") & ";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Radera = "SELECT * FROM TabNyheter WHERE id = " & Request.QueryString("id") & " "
RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic
Rad 19 RecSet.Delete
RecSet.Close
Connect.Close
Response.Redirect("lista_innehall.asp")
%>
Ska titta på tipset som Oldtimer hänvisar till. Verkar ha med det här att göra.
Det verkar som om du inte har skrivrättigheter på databasen, dom flesta webbhotellen har en speciellt mapp där den ska ligga för att det ska fungera.
I så fall behöver du bara flytta databasen dit och ändra sökvägen i koden så att den stämmer.
Efter att jag dubbelkollat mot webbhotellet, fick jag följande svar: Det var filen som inte ärvt rättigheterna från mappen.
Nu satte vi rättigheterna direkt på filen istället.
Nu funkar det. Frusterande att man ska behöva lägga ner tid på sånt här... Tack alla ni som engagerat er!
270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2