Buenas.
A ver si me podéis echar una mano. Llevo poco tiempo con ASP. Mirad,
estoy liado con una práctica de ASP que me da el siguiente error:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] No se puede actualizar.
Base de datos u objeto de sólo lectura.
/Practica19/index.asp, línea 64
Me da error a la hora de intentar insertar en la base de datos. Puedo
mostrar todas sus tablas, pero en cuanto llamo al Update, me sale ese
error.
No lo entiendo, pues es la misma base de datos que utilicé en su momento
para JDBC (acceso a base de datos con java), con lo que el DSN es el
mismo. Y en java sí que pude insertar, eliminar y actualizar.
Aquí os pego parte del código (forma parte de un formulario y muchas más
cosas).
Para explicárlo más rápido, primero se llama a "conectarBD", luego se
muestra la tabla antes de insertar, y luego a "insertarBD".
El fallo aparece en la línea "rsUpdate.Update". Os señalo la línea con un
comentario.
¡Ah! La variable objConexion está declarada al comienzo del código
original como global.
Creo que es un fallo de administración de sistema, que el directorio
donde está ubicada la base de datos no tiene permiso de escritura. Le he
dado permisos, pero nada.
Uso windows XP.
Aquí va el código. Por cierto, no sé si es mejor usar un Execute utilizando
del tirón sentencias sql, o hacerlo como yo lo he hecho...
<% Sub conectarBD()
Set objConexion = Server.CreateObject("ADODB.Connection")
objConexion.Mode=adModeReadWrite
objConexion.ConnectionString="DSN½Practica19"
objConexion.Open
end Sub
Sub desconectarBD()
objConexion.Close
Set ojbConexion=nothing
end Sub
Sub insertarBD
Set rsUpdate=Server.CreateObject("ADODB.Recordset")
rsUpdate.Open
"Ejemplo",objConexion,adOpenStatic,adLockOptimistic,adCmdTableDirect
rsUpdate.AddNew
rsUpdate("Nombre")=Request.Form("Nombre")
rsUpdate("Email")=Request.Form("Email")
rsUpdate("Url")=Request.Form("Url")
rsUpdate.Update 'Aquí es donde revienta el
prograaamaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rsUpdate.Close
Set rsUpdate=nothing
end Sub
%>
Leer las respuestas