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

Consulta SQL

Estas en el tema de Consulta SQL en el foro de ASP Clásico en Foros del Web. Me da este error: Microsoft JET Database Engine error '80004005' La operación debe usar una consulta actualizable. /Temporalasp/Encuestas/respuesta.asp, line 38 La linea 38 está marcada ...
  #1 (permalink)  
Antiguo 06/04/2004, 04:50
 
Fecha de Ingreso: abril-2004
Mensajes: 10
Antigüedad: 20 años, 2 meses
Puntos: 0
Consulta SQL

Me da este error:

Microsoft JET Database Engine error '80004005'

La operación debe usar una consulta actualizable.

/Temporalasp/Encuestas/respuesta.asp, line 38

La linea 38 está marcada en azul

¿Que he escrito mal?
La estructura de la tabla es:

A : Texto
B: Texto
C: Texto
D: Texto

Y está hecha en Access
<%
Dim conexion, consulta1, consulta2
Dim path, file
Dim respuesta
Dim mes
Dim ano
Dim datoanterior


path = Request.ServerVariables("PATH_TRANSLATED")
file= Left(path, instrRev(path, "\")) & "Encuesta.mdb"

Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "provider=microsoft.jet.oleDB.4.0;data source=" & file

respuesta = request.Form("respuesta")
consulta1 = "SELECT " + respuesta + " FROM Tabla1"
Set resultado = Server.CreateObject("ADODB.RecordSet")
resultado.open consulta1, conexion, adOpenKeyset
datoanterior = resultado(respuesta)
datoanterior = Cint(datoanterior)+1
datoanterior = Cstr(datoanterior)

consulta2 = "UPDATE Tabla1 SET Tabla1." + respuesta + " = """ + datoanterior + """"
Response.Write consulta2
38: conexion.Execute consulta2, adCmdText
Response.Cookies("Votado") = "True"
mes = month(date)
ano = year(date)
Response.Cookies("Votado").Expires = mes+"/31/"+ano
'Response.redirect("resultados.asp")
resultado = nothing
conexion.close()

End If
%>
  #2 (permalink)  
Antiguo 06/04/2004, 07:49
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 92
Antigüedad: 20 años, 2 meses
Puntos: 0
hacer las konsultas asi es valido?

yo pondria:

UPDATE Tabla SET campo=nuevodato where camo=datoanterior
__________________
Aupa Athletik!!!
  #3 (permalink)  
Antiguo 06/04/2004, 12:21
 
Fecha de Ingreso: agosto-2003
Ubicación: Guatemala
Mensajes: 94
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta Sobre metodo execute

Me parece que solo debes colocar conexion.execute consulta2.
Si me equivo corrigeme, pero no debes incluir el adCmdText.
__________________
Luis Pirir
Programador Web
Móvil: (502) 50623292
  #4 (permalink)  
Antiguo 07/04/2004, 03:37
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 20 años, 7 meses
Puntos: 0
mira los permisos de la tabla
  #5 (permalink)  
Antiguo 07/04/2004, 08:58
 
Fecha de Ingreso: abril-2004
Mensajes: 10
Antigüedad: 20 años, 2 meses
Puntos: 0
Y como se miran los permisos en ACCESS?
O en la pagina ASP?
  #6 (permalink)  
Antiguo 07/04/2004, 15:12
 
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 63
Antigüedad: 20 años, 2 meses
Puntos: 0
me pasa lo mismo

Hola!
A mi me pasa lo mismo y no se ya que mirar.
Tipo de error:
Microsoft JET Database Engine (0x80004005)
La operación debe usar una consulta actualizable.
/encuestas/verencuesta.asp, línea 26

y lo he puesto como decían arriba y sigue igual, aquí va el codigo:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/Tencuestas.mdb"))


if request.form("opcion")<>"" then


select case true

case request.form("opcion")=0
campo="r1"
case request.form("opcion")=1
campo="r2"
case request.form("opcion")=2
campo="r3"
case request.form("opcion")=3
campo="r4"
end select

sqltxt="update encuestas set "&campo&" = "&campo&"+1 where activa=True"

conn.execute sqltxt
end if
%>conn.execute sqltxt

MUCHAS GRACIAS X ADELANTADO
  #7 (permalink)  
Antiguo 07/04/2004, 16:13
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
es un error de permisos.

revisen los permisos de su carpeta donde esta la base de datos...debiera tener acceso full control y revisen los permisos del archivo...debe tener deschekeado el check box read-only.

saludos
  #8 (permalink)  
Antiguo 07/04/2004, 16:39
 
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 63
Antigüedad: 20 años, 2 meses
Puntos: 0
he revisado los permisos y parecen estar bien, lo único raro es que cada vez que deschekeo el check de solo lectura, cuando vuelvo a entrar en la carpeta, no aparece chekeado, pero aparece como con un cuadrado de color verde sobre el cuadrado, como si quedara medio chekeado, no se es muy raro (XP prof)
Sigue sin funcionarme, me da el mismo error
  #9 (permalink)  
Antiguo 07/04/2004, 16:53
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
hhmmm...

reitero es problema de permisos hay uno de los permisos que no te permite actualizar la informacion de la base de datos, revisaste la carpeta?


http://www.us.es/foros/read.php?f=54&i=104&t=104
**************************************************
'La operación debe usar una consulta actualizable.'

¿Os sale este error cuando intentais modificar (insertar o borrar) la base de datos desde una página asp?
A mi me salía hasta hace 10minutos. Llevo toda la mañana buscando la causa del problema y ya he dado con ella.
Dejo este mensaje para solucionarle la vida al que le ocurra lo mismo.

El problema son los permisos de lectura/escritura del archivo *.mdb
Si tienes Windows 2000 no tendrás este problema, pero si usas bases de datos de Access en Windows XP te debe haber ocurrido.

Por ahí he leido que "...es un problema originado por los MDAC del sistema..." No tengo ni idea de lo que es eso, pero lo cuento por si a alguien le aclara algo :P

El caso es que hay que habilitar el permiso de escritura para el archivo *.mbd.
Para ello abres el explorador de windows, haces click con el segundo boton sobre tu archivo *.mbd, click en propiedades y luego en la pestaña SEGURIDAD.

Probablemente no veas esta pestaña, eso es porque no aparece por defecto. En la ventana del explorador de windows haces click en Herramientas/Opciones de carpeta. Te vas a Ver y desmarcas: Utilizar uso compartido simple de archivos (recomendado)

Bien, ahora que ya estamos todos en la pestaña SEGURIDAD, en el cuadro Nombres de grupos o usuarios seleccionas TODOS y finalmente, debajo, en Permisos de Administradores marcas Control Total.

Con esto ya puedes añadir, modificar y borrar cosas en la base de datos.

Un saludo,

Luis!
**************************************************
  #10 (permalink)  
Antiguo 07/04/2004, 17:03
 
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 63
Antigüedad: 20 años, 2 meses
Puntos: 0
OK ESO YA ESTA SOLUCIONADO MUCHIIISIMAS GRACIAS.
Esto de XP son la leche. . .jeje
Saludos
  #11 (permalink)  
Antiguo 07/04/2004, 17:17
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
yep....XP no lo paso ni con aceite

saludos
  #12 (permalink)  
Antiguo 03/05/2004, 11:00
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 21 años
Puntos: 0
He hecho lo que me decíais y creo que he subido la base de datos aplicándole todos los permisos de escritura, aunque la verdad es que subo "Todos" con control total y cuando lo vuelvo a bajar pq no me funciona, control total no está seleccionado pero está habilitado y las demás opciones(Modificar,Lectura y ejecucion,...) están seleccionadas aunque con el checkbox inhabitilado.
Además mi administrador de hosting me dice que esa carpeta donde está situada la base de datos tiene permiso de escritura.
En fin no sé cual puede ser el error, pq incomprensiblemente me sigue apareciendo.
Si me podéis echar un cable os lo agradecería.

Última edición por reycoy; 03/05/2004 a las 11:02
  #13 (permalink)  
Antiguo 03/05/2004, 12:34
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
si tienes tu base de datos en un hosting tu no tienes que hacer nada...el hosting debe proveerte los permisos necesarios tanto del archivo como de la carpeta para el tema de los permisos

si te arroja este error debes volver a insister al hosting que hay problemas de permisos en tu archivo o carpeta

saludos
  #14 (permalink)  
Antiguo 04/05/2004, 03:36
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 21 años
Puntos: 0
Mi hosting me dice que los archivos que se suben a determinada carpeta adquieren los permisos propios de esa carpeta y esa carpeta tiene permisos de escritura.
¿Es posible que esté teniendo algún problema en el código para que me de ese error?
<%
Dim conexion, resultado, files, consulta
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Mode = adModeReadWrite

'CONEXION CON DSN
'conexion.Open "DSN=taltal.tal.tal"'; User=tal234; Password=taltal"
'CONEXION SIN DSN
files = "D:\tal\tal\tal\tal\bbdd.mdb"
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & files & ";Persist Security Info=False"

consulta = "UPDATE Tabla SET c2_texto1 = 'He cambiado el texto'"

Set resultado = conexion.Execute(consulta, ,adCmdText)
%>

Última edición por reycoy; 04/05/2004 a las 03:37
  #15 (permalink)  
Antiguo 04/05/2004, 17:47
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
pero como?...te dieron al rut fisica de tu archivo?....no deberias usar ServerMapPath para cuando subes tu base a un host?
  #16 (permalink)  
Antiguo 05/05/2004, 03:31
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 21 años
Puntos: 0
La carpeta esta por seguridad no está en lo que es la raiz cuando yo accedo con un servidor ftp, sino en otro lado, por eso no puedo acceser con ServerMapPath.....¿o sí?.
¿Me lo podrías explicar un poco más lo que quieres decir?
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:50.