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

No se puede actualizar. Base de datos u objeto de sólo lectura.

Estas en el tema de No se puede actualizar. Base de datos u objeto de sólo lectura. en el foro de ASP Clásico en Foros del Web. Hola amigos, Tengo un pequeño problemilla al intentar insertar un registro en la base de datos, este es el codigo: Dim Conexion,Tabla Set Conexion = ...
  #1 (permalink)  
Antiguo 16/03/2004, 05:02
 
Fecha de Ingreso: marzo-2004
Ubicación: aaa
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
No se puede actualizar. Base de datos u objeto de sólo lectura.

Hola amigos,
Tengo un pequeño problemilla al intentar insertar un registro en la base de datos, este es el codigo:

Dim Conexion,Tabla
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")
Conexion.Open "base"

Tabla.open "Select * From Tabla1 ", Conexion,1,3

'logo aki vendria lo del addnew y tabla.update

Se supone que con el 1,3 ya tendria permisos de escritura verdad?hace falta dar algun otro permiso para la base de datos o algo asi??

Gracias por la ayuda, Un saludo a tod@s.
  #2 (permalink)  
Antiguo 16/03/2004, 05:12
 
Fecha de Ingreso: enero-2004
Mensajes: 154
Antigüedad: 21 años, 3 meses
Puntos: 0
tienes que dar permiso al usuario

Tabla.cursorlocation=3
Tabla.open "Select * From Tabla1 ", Conexion,1,3

Todos los datos numéricos tienen sus constantes que hacen que el código sea un poco más comprensible,pero ahora mismo no me acuerdo de cuales son.


Saludos!!!!
  #3 (permalink)  
Antiguo 16/03/2004, 05:27
 
Fecha de Ingreso: marzo-2004
Ubicación: aaa
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
Funciona y he conseguido pasar de esa linea aunque aora me da el sieguieente error, no se si sera por alguna otra metedura d3e pata mia jejej mirad os pongo el codigo aki (con la lo q me as dicho antes):

<%
Dim Conexion,Tabla
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")

Conexion.Open "base"

Tabla.cursorlocation=3
Tabla.open "Select * From Tabla1 ", Conexion,1,3


If Tabla.BOF And Tabla.EOF Then
Tabla.addnew
Tabla("Nombre") = Request("Dato1")
Tabla("Categoria") = Request("Dato4")
Tabla.Update
'fin del Script
%>

Ingreso de datos completado

El error dice lo siguiente:"La operación debe usar una consulta actualizable." y apunta a la linea ----> Tabla.Update

Gracias por ayudarme!!!
Saludos
  #4 (permalink)  
Antiguo 16/03/2004, 05:47
 
Fecha de Ingreso: enero-2004
Mensajes: 154
Antigüedad: 21 años, 3 meses
Puntos: 0
Me parece que la condición que tienes siempre resulta falsa.

si quieres saber si devuelve registro usa
if Tabla.EOF then Tabla.addnew
Con esto si la consulta es vacia te crea un nuevo registro

Sabes lo que son BOF y EOF. Me parece que no...

Ahora creo que si te funcionará...

Un Saludo.
  #5 (permalink)  
Antiguo 16/03/2004, 05:52
 
Fecha de Ingreso: marzo-2004
Ubicación: aaa
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
Muxas gracias luego pruebo haber si sale asi.
Si que se lo q son el BOF y EOF solo que es parte de un codigo que no lo he creado yo y no habia caido en que la condicion nunca se cumple, ademas ando con prisas, luego lo miro bien y te comento lo que ha salido.

BOF=Beginig of file
EOF=End of file

Indican el principio o el final de un recordset
no?

Saludos
  #6 (permalink)  
Antiguo 16/03/2004, 09:33
 
Fecha de Ingreso: marzo-2004
Ubicación: aaa
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
hola de nuevo,
Al parecer lo q tenia puesto yo estaba bien (kitando lo del eof y bof), no hace falta poner --tabla.cursorlocation=3--, el problema de la consulta actualizable blablabla la he encontrao en un foro, os dejo la url aki pos si akaso algun dia os pasa, decir tb q al parecer pasa con xp y IIS por lo q e leido.

http://www.programacion.com/foros/5/msg/5984/

Gracias de todas formas.
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 16:01.