[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

Salve riapro questo thread perchè pure a me capita questa tipologia di errore , il sito è funzionante da parecchio tempo su aruba. L'errore si verifica nei permessi di scrittura sul db vi posto il codice :

errore : Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

Codice

Codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="../Connections/accesso.asp" -->
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="index.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
  If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
         (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
  End If
End If
If Not MM_grantAccess Then
  MM_qsChar = "?"
  If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
  MM_referrer = Request.ServerVariables("URL")
  if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
  MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
  Response.Redirect(MM_authFailedURL)
End If
%>
<%
Dim MM_editAction
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
' IIf implementation
Function MM_IIf(condition, ifTrue, ifFalse)
  If condition = "" Then
    MM_IIf = ifFalse
  Else
    MM_IIf = ifTrue
  End If
End Function
%>
<%
If (CStr(Request("MM_insert")) = "form1") Then
  If (Not MM_abortEdit) Then
    ' execute the update
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_accesso_STRING
    MM_editCmd.CommandText = "UPDATE INTO Segnalazioni ([Data], Condominio, Segnalazione, Segnalatore, Manutentore, SegnalatoDa, Nota) VALUES (?, ?, ?, ?, ?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 135, 1, -1, MM_IIF(Request.Form("Data"), Request.Form("Data"), null)) ' adDBTimeStamp
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 60, Request.Form("Condominio")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 200, Request.Form("Segnalazione")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 202, 1, 60, Request.Form("Segnalatore")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param5", 202, 1, 60, Request.Form("Manutentore")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param6", 202, 1, 20, Request.Form("SegnalatoDa")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param7", 202, 1, 200, Request.Form("Nota")) ' adVarWChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "Segnalazioni.asp"
    If (Request.QueryString <> "") Then
      If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
        MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
      Else
        MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
      End If
    End If
    Response.Redirect(MM_editRedirectUrl)
  End If
End If
%>
<%
Dim Inserimento
Dim Inserimento_cmd
Dim Inserimento_numRows

Set Inserimento_cmd = Server.CreateObject ("ADODB.Command")
Inserimento_cmd.ActiveConnection = MM_accesso_STRING
Inserimento_cmd.CommandText = "SELECT [Data], Condominio, Segnalazione, Segnalatore, Manutentore, SegnalatoDa, Nota FROM Segnalazioni" 
Inserimento_cmd.Prepared = true

Set Inserimento = Inserimento_cmd.Execute
Inserimento_numRows = 0
%>
<%
Dim Condomini
Dim Condomini_cmd
Dim Condomini_numRows

Set Condomini_cmd = Server.CreateObject ("ADODB.Command")
Condomini_cmd.ActiveConnection = MM_accesso_STRING
Condomini_cmd.CommandText = "SELECT * FROM Condomini ORDER BY Condominio ASC" 
Condomini_cmd.Prepared = true

Set Condomini = Condomini_cmd.Execute
Condomini_numRows = 0
%>
<%
Dim Manutentori
Dim Manutentori_cmd
Dim Manutentori_numRows

Set Manutentori_cmd = Server.CreateObject ("ADODB.Command")
Manutentori_cmd.ActiveConnection = MM_accesso_STRING
Manutentori_cmd.CommandText = "SELECT * FROM Manutentori ORDER BY Manutentore ASC" 
Manutentori_cmd.Prepared = true

Set Manutentori = Manutentori_cmd.Execute
Manutentori_numRows = 0
%>

l'errore si verifica in riga 61 precisamente
Codice:
 MM_editCmd.Execute

Ringrazio chi mi vorrà aiutare già da ora
 
Se il sito ti ha funzionato da diverso tempo e te non hai toccato nulla ti conviene aprire un ticket sul supporto "Aruba" per verificare che tutto sia funzionante.
Ovviamente prima ti consiglio di:
. controllare i permessi sulla cartella (lettura/scrittura);
. controllare l'integrità del database access, scaricalo, ottimizzalo con acces e ricaricalo.

Facci sapere ;)
 

Discussioni simili