Hola a todos. Estoy intentando insertar unos datos en una
base de datos access, pero no consigo que funcione. Los
datos los quiero traer de otro formulario que tiene tres
cajas de texto. He comprobado que el directorio virtual
tengo acceso a escritura. Estoy trabajando con windows XP
profesiona. El codigo es el siguiente:
<%
Response.Buffer = true
dim cnn,rst
' Creamos la conexión a la base de datos sin DSN
set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
'cnn.Open "Driver={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("noticias.mdb")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=d:\pagina weboticias.mdb"
sqltext = "SELECT * FROM Noticias"
rst.Open sqltext,cnn,3,3
'Recogemos los datos y validamos que no haya ningun campo
vacio
dim titulo, copete, noticia
titulo = Request.Form("titulo")
copete = Request.Form("copete")
noticia = Request.Form("noticia")
if copete = "" or titulo ="" or noticia ="" then
error = "Debe completar todos los datos."
Response.Write error
Response.End
end if
rst.AddNew
rst("titulo") = titulo
rst("copete") = copete
rst("noticia") = noticia
rst.update
' aqui lo he intentando como siempre lo he echo en visual
basic sin problemas pero me dice que nones
'dim csql
'csql = "INSERT INTO noticias (titulo, copete, noticia)
VALUES ('concha', 'concha', 'concha')"
'cnn.execute csql
'Terminamos e imprimimos un mensaje
Response.Write "La noticia se ha ingresado con exito"
%>
<html>
<head>
<title>Página nueva </title>
</head>
<body>
</body>
</html>
Asi como esta el codigo ahora me da el siguiente error:
Tipo de error:
ADODB.Recordset (0x800A0CB3)
El Recordset actual no admite actualizaciones. Puede ser
una limitación del proveedor o del tipo de bloqueo
seleccionado.
/prueba/agrega_noticia.asp, línea 26
Y si pruebo de la otra forma, como siempre lo hago en
visual basic me dice
Tipo de error:
Microsoft JET Database Engine (0x80004005)
La operación debe usar una consulta actualizable.
/prueba/agrega_noticia.asp, línea 33
Por que sucede esto. Muchas gracias.
Jose Mª Cousiño
Leer las respuestas