Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Shaun E on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Operation must use an updateable query

Status
Not open for further replies.

chrab

Programmer
Jan 13, 2006
10
US
Anyone,
Here is my delima! I have two sites on two different servers. Today I was updating a database(MS Access) on one of my sites and when I pasted it back onto the server I get this message on any form that is trying to update or delete from that server.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

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

/admin/mapedit2.asp, line 111

I have other Databases in the same folder on that server that perform other functions and they work ok. I have called the ISP and had them check the permissions on the folder, DB , and ODBC and they said everything looks ok. I have checked the Database and cannot find any errors. It is just wierd becasue the forms worked before I modified the database and even the forms from tables I had not updated will not work.

On my other site the same thing happend. This site is with a different ISP. I had them check the permissions and they said it looks fine. ANY HELP WOULD BE APPRECIATED.
 
I've checked for Misc LDB's and I even Deleted the folder and have tried to recreate the DB. Here is a sample of the code I use to insert a record along with the connection file. Can anyone spot an error? Thanks

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="main.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

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
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

MM_editConnection = MM_Main_STRING
MM_editTable = "tblmaptype"
MM_editRedirectUrl = "success.asp"
MM_fieldsStr = "Type|value"
MM_columnsStr = "Type|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim rsmaptypeadd
Dim rsmaptypeadd_numRows

Set rsmaptypeadd = Server.CreateObject("ADODB.Recordset")
rsmaptypeadd.ActiveConnection = MM_Main_STRING
rsmaptypeadd.Source = "SELECT * FROM tblmaptype"
rsmaptypeadd.CursorType = 0
rsmaptypeadd.CursorLocation = 2
rsmaptypeadd.LockType = 1
rsmaptypeadd.Open()

rsmaptypeadd_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<title>Johnson County Republican Admin Portal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 {color: #000066;
font-weight: bold;
font-size: x-large;
}
.style4 { color: #7C011A;
font-size: medium;
font-weight: bold;
}
-->
</style>
</head>

<body>
<table width="704" border="0" align="center">
<tr>
<th scope="row"><div align="center"><img src="/admin/img/logo.jpg" width="117" height="70" align="middle"><span class="style1"> Johnson County Republican Admin Portal </span> <img src="/admin/img/logo.jpg" width="117" height="70" align="middle"></div></th>
</tr>
<tr bgcolor="#000066">
<th scope="row">&nbsp;</th>
</tr>
<tr>
<th scope="row"><table width="474" border="0">
<tr>
<th width="468" class="style1" scope="row">Map Type Console </th>
</tr>
<tr bgcolor="#000066">
<th scope="row"><div align="center"></div></th>
</tr>
<tr>
<th scope="row"><form name="form1" method="POST" action="<%=MM_editAction%>">
<table width="431" border="0">
<tr>
<th width="250" scope="row">Map Type (Blue River Township) </th>
<th width="171" scope="row"><input name="Type" type="text" id="Type"></th>
</tr>
<tr>
<th colspan="2" scope="row"><div align="center">
<input type="submit" name="Submit" value="Submit">
</div></th>
</tr>
</table>

<input type="hidden" name="MM_insert" value="form1">
</form></th>
</tr>
</table></th>
</tr>
<tr>
<th bgcolor="#000066" scope="row">&nbsp;</th>
</tr>
</table>
</body>
</html>
<%
rsmaptypeadd.Close()
Set rsmaptypeadd = Nothing
%>


CONNECTION FILE

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
Dim MM_main_STRING
MM_main_STRING = "dsn=main;"
%>
 
dr00bie said:
But as you know, almost always this error is caused by a permission issue...

I also ahve yet to see another reason behind this error other thatn permissions. You didn't reference checking that. did you? makes sense if you can update on one db and not the other with the same script


and straight from the mouth of the giant MS


General FAQ faq333-2924
5 steps to asking a question faq333-3811
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top