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

Estoy haciendo algo mal al añadir a la BBDD???

Estas en el tema de Estoy haciendo algo mal al añadir a la BBDD??? en el foro de ASP Clásico en Foros del Web. yo hago esto: Código: Set db = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") con="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/riojavina/data/bbddRiojavina.mdb") db.open con sql="select * from Productos" rs.open ...
  #1 (permalink)  
Antiguo 22/06/2004, 07:03
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
Pregunta Estoy haciendo algo mal al añadir a la BBDD???

yo hago esto:

Código:
Set db = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/riojavina/data/bbddRiojavina.mdb")
db.open con
sql="select * from Productos"
rs.open sql,db
rs.addnew
	rs.fields("NomMarca")=request.Form("Marca")
	rs("NomVariedad")=request.Form("NomVariedad")
	rs("NomProducto")=request.Form("NomProducto")
	rs("EAN1")=request.Form("EAN1")
	rs("EAN2")=request.Form("EAN2")
	rs("Formato1")=request.Form("Formato1")
	rs("Formato2")=request.Form("Formato2")
	rs("BotPack")=request.Form("BotPack")
	rs("BotCaja")=request.Form("BotCaja")
	rs("Paletizacion")=request.Form("palet")
	rs("Acidez")=request.Form("acidez")
	rs("Descripcion")=request.Form("Descripcion")
	rs("Sello")=request.Form("Sello")
	rs("URLImagen")=request.Form("URLImagen")
	rs("URLImgPeke")=request.Form("URLImgPeke")
	rs("Criterio")=request.Form("Criterio")
	rs("Otros Datos")=request.Form("Otros")
rs.update
response.write("<table style='margin-left:20' cellpadding='0' cellspacing='0' border='0'><tr><td class='Titulo3' width='746'>Alta de Productos<tr><td colspan='3'><hr color='#FF0000'><tr><td width='257' class='titulo'>Producto Añadido correctamente")
response.Write("<tr><td><br>")
Y me sale este mensaje:

Cita:
ADODB.Recordset error '800a0cb3'

El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.

/riojavina/admin/ALTA_FINAL_productos.asp, line 24
La linea 24 es la de color, ke esta mal???

Gracias
  #2 (permalink)  
Antiguo 22/06/2004, 07:18
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
MIra a ver que no tengas la DB con permisos de solo lectura. En tu PC, coge, click secundario en la db, propiedades, y asgurante de que la casilla 'solo lectura' esté desmarcada.

Luego, prueba abriendo la db así:
rs.open sql,db, 2, 3
__________________
Tu portal de manga y anime.
  #3 (permalink)  
Antiguo 22/06/2004, 07:30
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
Ya me he asegurado y he hecho eso tb pero nada, sigue dando error, pero ahora este:

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

[Microsoft][Controlador ODBC Microsoft Access] No se puede actualizar. Base de datos u objeto de sólo lectura.

/riojavina/admin/ALTA_FINAL_productos.asp, line 42
Es decir, lo mismo pero en esta linea:

Cita:
rs.update
  #4 (permalink)  
Antiguo 22/06/2004, 08:32
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Si te da ese error es por lo que te he dicho: tienes el archivo en modo solo lectura. Desmarca esa casilla desde Windows, para poder así hacer updates.
__________________
Tu portal de manga y anime.
  #5 (permalink)  
Antiguo 23/06/2004, 03:57
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
He mirado la BBDD y tiene todos los permisos, estoy seguro.
Mi código es este:

Código:
Set db = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/riojavina/data/bbddRiojavina.mdb")
db.open con
sql="select * from Productos"
rs.open sql,db,2,3
rs.addnew
	rs.fields("NomMarca")=request.Form("Marca")
	rs("NomVariedad")=request.Form("NomVariedad")
	rs("NomProducto")=request.Form("NomProducto")
	rs("EAN1")=request.Form("EAN1")
	rs("EAN2")=request.Form("EAN2")
	rs("Formato1")=request.Form("Formato1")
	rs("Formato2")=request.Form("Formato2")
	rs("BotPack")=request.Form("BotPack")
	rs("BotCaja")=request.Form("BotCaja")
	rs("Paletizacion")=request.Form("palet")
	rs("Acidez")=request.Form("acidez")
	rs("Descripcion")=request.Form("Descripcion")
	rs("Sello")=request.Form("Sello")
	rs("URLImagen")=request.Form("URLImagen")
	rs("URLImgPeke")=request.Form("URLImgPeke")
	rs("Criterio")=request.Form("Criterio")
	rs("OtrosDatos")=request.Form("Otros")
rs.Update
rs.Close()
rs=null
db.Close()
Y no se xk me da el error pero me lo dá en la linea azul
Si pudierais ayudarme... Muxisimas gracias!!!
  #6 (permalink)  
Antiguo 23/06/2004, 05:14
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
Estas son las propiedades de la Base de Datos, yo creo ke esta todo bien, no?



Entonces xk en el rs.update me da este error???

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

[Microsoft][Controlador ODBC Microsoft Access] No se puede actualizar. Base de datos u objeto de sólo lectura.

/riojavina/admin/ALTA_FINAL_productos.asp, line 44
X favor, ya no se ke mas hacer

Gracias
  #7 (permalink)  
Antiguo 23/06/2004, 06:19
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
Como le cambio los permisos de escritura a la BBDD?

Como lo hago si pinchando con el 2º botón del raton no parece ke se me guarden los cambios aunke creo ke estan bien:



pero me sigue dando este error:

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

[Microsoft][Controlador ODBC Microsoft Access] La operación debe usar una consulta actualizable.

/riojavina/admin/ALTA_FINAL_productos.asp, line 24
que hago???
  #8 (permalink)  
Antiguo 23/06/2004, 07:26
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Joder, que raro. Parece que sí que está todo bien puesto, pero por algun extraño motivo no te deja actualizar.

Lo siento, ahora sí que no tengo ni idea de que puede ser.
__________________
Tu portal de manga y anime.
  #9 (permalink)  
Antiguo 23/06/2004, 07:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 7 meses
Puntos: 1
hola enchodebacon!
Como ya he dicho varias veces soy algo novata, pero igual es lo siguiente:
Prueba a cambiar
sql="select * from Productos"
rs.open sql,db,2,3
... por:
rs.open "Productos", db, adOpeKeySet, adLockOptimistic, adCmdTable
Igual no es eso, pero por probar....
Un saludito!
  #10 (permalink)  
Antiguo 23/06/2004, 08:33
 
Fecha de Ingreso: mayo-2004
Mensajes: 12
Antigüedad: 20 años
Puntos: 0
mmm

No hace mucho tuve un problema parecido y como tenía mucha prisa probé actualizando el campo mediante update o insert en sql y me funcionó a la primera.
  #11 (permalink)  
Antiguo 24/06/2004, 05:40
 
Fecha de Ingreso: junio-2004
Mensajes: 52
Antigüedad: 20 años
Puntos: 0
Me he asegurado de ke la base de datos tiene todos los permisos pero nada sigue dandome el mismo mensaje y no se ke puedo hacer, lo he probado todo, tengo 3 tipos de consultas distintas:

Con 1 insert:

Código:
sql="INSERT INTO Productos (NomMarca,NomProducto,NomVariedad,EAN1,EAN2,Formato1,Formato2,BotPack,BotCaja,Paletizacion,OtrosDatos,Acidez,Descripcion,Sello,URLImagen,URLImgPeke,Criterio) VALUES ('" & request.Form("Marca") & "','" & request.Form("NomProducto") & "','" & request.Form("NomVariedad") & "','" & request.Form("EAN1") & "','" & request.Form("EAN2") & "','" & request.Form("Formato1") & "','" & request.Form("Formato2") & "','" & request.Form("BotPack") & "','" & request.Form("BotCaja") & "','" & request.Form("palet") & "','" & request.Form("Otros") & "','" & request.Form("acidez") & "','" & request.Form("Descripcion") & "','" & request.Form("Sello") & "','" & request.Form("URLImagen") & "','" & request.Form("URLImgPeke") & "','" & request.Form("Criterio") & "')"
con 1 update:

Código:
sql="UPDATE Productos SET NomMarca='" & request.Form("Marca") & "', NomProducto='" & request.Form("NomProducto") & "', NomVariedad='" & request.Form("NomVariedad") & "', EAN1='"&request.Form("EAN1") & "', EAN2='" & request.Form("EAN2") & "',Formato1='" & request.Form("Formato1") & "', Formato2='" & request.Form("Formato2") & "', BotPack='" & request.Form("BotPack") & "', BotCaja='" & request.Form("BotCaja") & "', Paletizacion='" & request.Form("palet") & "', OtrosDatos='" & request.Form("Otros") & "',Acidez='" & request.Form("acidez") & "', Descripcion='" & request.Form("Descripcion") & "', Sello='" & request.Form("Sello") & "', URLImagen='" & request.Form("URLImagen") & "', URLImgPeke='" & request.Form("URLImgPeke") & "', Criterio='" & request.Form("Criterio") & "'"
y de la forma 1º ke lo hice:

Código:
rs.addnew
	rs.Fields("NomMarca")=request.Form("Marca")
	rs.Fields("NomVariedad")=request.Form("NomVariedad")
	rs.Fields("NomProducto")=request.Form("NomProducto")
	rs.Fields("EAN1")=request.Form("EAN1")
	rs.Fields("EAN2")=request.Form("EAN2")
	rs.Fields("Formato1")=request.Form("Formato1")
	rs.Fields("Formato2")=request.Form("Formato2")
	rs.Fields("BotPack")=request.Form("BotPack")
	rs.Fields("BotCaja")=request.Form("BotCaja")
	rs.Fields("Paletizacion")=request.Form("palet")
	rs.Fields("Acidez")=request.Form("acidez")
	rs.Fields("Descripcion")=request.Form("Descripcion")
	rs.Fields("Sello")=request.Form("Sello")
	rs.Fields("URLImagen")=request.Form("URLImagen")
	rs.Fields("URLImgPeke")=request.Form("URLImgPeke")
	rs.Fields("Criterio")=request.Form("Criterio")
	rs.Fields("OtrosDatos")=request.Form("Otros")
rs.Update()
Y con ninguna de las 3 me sale... me sigue dando el mismo mensaje de error!

No se ke hacer, podeis ayudarme??? El access es una mierda!!!

Gracias.
  #12 (permalink)  
Antiguo 24/06/2004, 09:09
 
Fecha de Ingreso: junio-2004
Mensajes: 5
Antigüedad: 20 años
Puntos: 0
Hola, Cuando creas un recorset las opciones que toma por defecto son de lecturas con un un bloque de registros, lo que debes hecer es crear el recordset e indicarle que lo vas a modificar. Haz lo siguiente, cambia la linea
rs.open sql,db por rs.open sql,db,adOpenDynamic, adLockBatchOptimistic
  #13 (permalink)  
Antiguo 24/06/2004, 10:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Aunque si haces eso no olvides de incluir el archivo adovbs.inc para que tome las constantes.

Saludos
  #14 (permalink)  
Antiguo 24/06/2004, 22:11
Avatar de Atonovich  
Fecha de Ingreso: diciembre-2002
Ubicación: ...
Mensajes: 117
Antigüedad: 21 años, 6 meses
Puntos: 0
He tenido errores parecidos, me ha funcionado perfecto usando una conexiòn DNS-less como està:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Drive:\ruta\miBD.mdb;User Id=admin;Password=password;"

Intenta y nos comentas!
__________________
" El hombre es una invención de Dios o Dios es una invención del hombre..."
  #15 (permalink)  
Antiguo 24/06/2004, 22:22
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
Espero que no estés actualizando la BBDD, teniéndola ésta abierta en el escritorio de Windows ;)

Por otro lado, mira que no tengas algún programa en segundo plano que no te deje realizar esta tarea (antivirus, etc). No se, a veces las cosas tan tontas son causa de muchos quebraderos de cabeza.

Si no te funciona, seguramente será por los permisos que tengas en el equipo

Utilizas NTFS como sistema de archivos ? Tienes el Active Directory Instalado ? QUe permisos de usuario tienes en el PC ? Nose... pueden ser varias cosas.

Lo mejor es que lo subas a un servidor gratuito (nose, brinkster por ejemplo) y pruebes la página, así saldrás de dudas ;)

Un saludo
__________________
Documentación de VBScript V5.6 en Español:
http://download.microsoft.com/downlo...ES/scd56es.exe
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 11:05.