problemas al insertar en al base de datos

04/04/2005 - 16:06 por cousi | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Matias Iacono
04/04/2005 - 16:33 | Informe spam
Ten en cuenta que no solo el directorio necesita permisos de escritura, si
no que el archivo en si tambien debe tener. En este caso la base de datos.

Si no, prueba de sacar la DB fuera del directorio virtual del sitio web, por
ejemplo en tu C y a ver que pasa.

saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:194101c5391f$8c2dac20$
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
Respuesta Responder a este mensaje
#2 cousi
04/04/2005 - 17:14 | Informe spam
Hola Matias, he probado como tu me has comentado a
sacarlo a c, pero me sigue dando el mismo error, y no se
por que. EL directorio donde lo he puesto en c tenia
permisos de escritura y no se que mas hacer. Por favor
ayuda.

Muchas gracias.

Jose Mª Cousiño
Ten en cuenta que no solo el directorio necesita


permisos de escritura, si
no que el archivo en si tambien debe tener. En este caso


la base de datos.

Si no, prueba de sacar la DB fuera del directorio


virtual del sitio web, por
ejemplo en tu C y a ver que pasa.

saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:194101c5391f$8c2dac20$
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


.

Respuesta Responder a este mensaje
#3 Matias Iacono
04/04/2005 - 17:23 | Informe spam
Prueba de seleccionar la DB, y darle permisos de escritura al usuario
anonimo. Pero no en el directorio si no al archivo

Si usas XP Pro, a veces, dependiendo de tus configuraciones, esto no es
posible. :(

De cualquier manera, otra cosa que debes de tener en cuenta, es que nunca
tengas la DB abierta con Access cuando trates de hacer una consulta, ya que
este bloquea el archivo.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:217b01c53928$f20f6f20$
Hola Matias, he probado como tu me has comentado a
sacarlo a c, pero me sigue dando el mismo error, y no se
por que. EL directorio donde lo he puesto en c tenia
permisos de escritura y no se que mas hacer. Por favor
ayuda.

Muchas gracias.

Jose Mª Cousiño
Ten en cuenta que no solo el directorio necesita


permisos de escritura, si
no que el archivo en si tambien debe tener. En este caso


la base de datos.

Si no, prueba de sacar la DB fuera del directorio


virtual del sitio web, por
ejemplo en tu C y a ver que pasa.

saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:194101c5391f$8c2dac20$
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


.

Respuesta Responder a este mensaje
#4 cousi
04/04/2005 - 18:17 | Informe spam
Hola Matias, y gracias por la información. El problema
era que elo archivo mdb (la base de datos), no existia el
usuario de internet, ya lo he creado y ha funcionado
perfectamente.

Muchas gracias.

Jose Mª Cousiño
Prueba de seleccionar la DB, y darle permisos de


escritura al usuario
anonimo. Pero no en el directorio si no al archivo

Si usas XP Pro, a veces, dependiendo de tus


configuraciones, esto no es
posible. :(

De cualquier manera, otra cosa que debes de tener en


cuenta, es que nunca
tengas la DB abierta con Access cuando trates de hacer


una consulta, ya que
este bloquea el archivo.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:217b01c53928$f20f6f20$
Hola Matias, he probado como tu me has comentado a
sacarlo a c, pero me sigue dando el mismo error, y no se
por que. EL directorio donde lo he puesto en c tenia
permisos de escritura y no se que mas hacer. Por favor
ayuda.

Muchas gracias.

Jose Mª Cousiño
Ten en cuenta que no solo el directorio necesita


permisos de escritura, si
no que el archivo en si tambien debe tener. En este caso


la base de datos.

Si no, prueba de sacar la DB fuera del directorio


virtual del sitio web, por
ejemplo en tu C y a ver que pasa.

saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net

Perfil: http://aspnet2.com/mvp.ashx?MatiasIacono
"cousi" wrote in message
news:194101c5391f$8c2dac20$
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


.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida