Foros del Web » Programando para Internet » ASP Clásico »

BD (0x80004005) La operación debe usar una consulta actualizable.

Estas en el tema de BD (0x80004005) La operación debe usar una consulta actualizable. en el foro de ASP Clásico en Foros del Web. El problema es el siguiente cuando ejecuto el archivo altas.asp para insertar un registro nuevo me manda este error. Tipo de error: Microsoft OLE DB ...
  #1 (permalink)  
Antiguo 21/09/2006, 10:36
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 8 meses
Puntos: 0
BD (0x80004005) La operación debe usar una consulta actualizable.

El problema es el siguiente cuando ejecuto el archivo altas.asp para insertar un registro nuevo me manda este error.

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] La operación debe usar una consulta actualizable.
/bd/altas.asp, línea 121

No se por que pasara esto, el cogigo fue generado desde dreamweaver, yo no he escrito nada. espero que alguien me pueda dar una solucion de donde este el error... gracias de antemano

NOTA: La base de datos esta en access

--------------> Codigo de altas.asp -------------------->

<!--#include file="../Connections/cnnsocios.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
Dim MM_insert

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_cnnsocios_STRING
MM_editTable = "membresia"
MM_editRedirectUrl = "ok.asp"
MM_fieldsStr = "Cons|value|Registro|value|Ficha|value|Nombres|val ue|Ext_Pemex|value|RFC|value|Ingreso_Asoc|value|Fe cha_Nac|value|Edad|value|C_Trabajo|value|Depto|val ue|Calidad|value|Sit_Actual|value|Region|value|Ger encia|value|Ubicacion|value|Domicilio_Particular|v alue|mail|value|Nombre_Conyugue|value|Mes|value|Di a|value|Trab_Plataforma|value"
MM_columnsStr = "Cons|none,none,NULL|Registro|',none,''|Ficha|',no ne,''|Nombres|',none,''|Ext_Pemex|',none,''|RFC|', none,''|Ingreso_Asoc|',none,''|Fecha_Nac|',none,'' |Edad|',none,''|C_Trabajo|',none,''|Depto|',none,' '|Calidad|',none,''|Sit_Actual|',none,''|Region|', none,''|Gerencia|',none,''|Ubicacion|',none,''|Dom icilio_Particular|',none,''|mail|',none,''|Nombre_ Conyugue|',none,''|Mes|',none,''|Dia|',none,''|Tra b_Plataforma|',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
%>
  #2 (permalink)  
Antiguo 21/09/2006, 10:54
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 6 meses
Puntos: 5
Fijate que la base de datos tenga todos los permisos habilitados...
¿Qué BD usás y en qué sistema operativo?

Saludos.

Última edición por Falhor; 21/09/2006 a las 10:54 Razón: Falta de ortografía =)
  #3 (permalink)  
Antiguo 21/09/2006, 11:01
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
De acuerdo Respuestas a la mano

Entre muchas otras cosas te puedo decir:

1.- Creo que estas intentando insertar algo en una consulta no actualizable, si intentas abrir esa misma consulta desde access seguramente tampoco te deje tocar nada, mejor inserta los datos correspondientes en las diferentes tablas en vez de atacar a las consultas.

2.- Cuando ejecutas el RS tienes que darle permiso de lectura y escritura, digamos los codigos 1, 2 y 3, si me entiendes ??

3.- Te puedo recomendar que busques el directorio raíz de la aplicación ASP en el directorio inetpub\wwwroot y acceder a sus propiedades haciendo click con el botón derecho del ratón. Una vez en las propiedades se debe acceder a USO COMPARTIDO DE WEB y COMPARTIR ESTA CARPETA asignando los permisos adecuados en MODIFICAR PROPIEDADES (lectura, escritura, etc. y ejecución para permitir la ejecución del código ASP). Una vez hecho esto la aplicación será públicada con los permisos y no debe tener más problemas.

Saludos espero te sirva.

Si se soluciono el problema avisa y si aun sigue, aqui estamos para ayudar.

Última edición por jbco; 21/09/2006 a las 11:35
  #4 (permalink)  
Antiguo 21/09/2006, 11:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 8 meses
Puntos: 0
O, muchas gracias voy a intentar lo que me han sugerido,

P.D. la base de datos esta en access y el servidor que utilizo es iis en windows XP...
  #5 (permalink)  
Antiguo 21/09/2006, 11:35
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 8 meses
Puntos: 0
Muchas, gracias... todo ha quedado de maravilla... he podido insertar los registros y con programacion manual he implementado un libro de visitas... gracias.

P.D. tan sencillo que era asignar permisos... grax
  #6 (permalink)  
Antiguo 21/09/2006, 11:41
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Me da gusto que se haya solucionado el problema, aveces nos topamos con problemas tan sencillos que se nos hacen grandes por la preocupacion o por la falta de medios; pero gracias a estos foros nos podemos ayudar. Saludos y adelante.
  #7 (permalink)  
Antiguo 21/09/2006, 12:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 8 meses
Puntos: 0
Asi es problemas sencillos pero que se complican... gracias de nuevo.
  #8 (permalink)  
Antiguo 21/09/2006, 12:16
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 6 meses
Puntos: 5
A veces lo más sencillo puede ser más difícil que uno no tan sencillo. El problema de los sencillos es encontrarlo, uno nunca se lo imagina.
A mí me pasó eso, estuve bastante tiempo para ver qué era junto con otras personas, hasta que en un momento lo descubrimos...

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:44.