access y ASP: escritura/modificacion de una BD

hola, estoy haciendo un trabajo que consiste en una aplicacion web con ASP, Access y IIS. tenemos que hacer consultas, inserciones y actualziaciones en la base de datos, las consultas de arte, pero ahora estamos con inserciones y.... [buuuaaaa]
os escribo un poco de codigo:
var conexion=Server.CreateObject("ADODB.Connection");
conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+Server.MapPath("DB/bd.mdb"));


asi es como conectamos con la base de datos, a partir de ahi creamos una cadena con una sentencia SQL tipo INSERT INTO correcta, ay que ejecutandola en Access directamente si funciona. pero esa misma sentencia ejecutadola en el .asp asi:
var rs=conexion.Execute(inserccion);

donde inserccion es la sentencia en cuestion. pues bien ese execute da una exepcion.pero si la sentencia es del tipo SELECT se ejecuta parfectamente.
supongo que sera que tengo que hacer algo especial apra acceder a la BD y poder modificarla. en el directorio virtual de IIS he permitido la lectura y escritura del directorio, pero otra cosa mas no se me ocurre.
decir tambien que me estoy volviendo loco, tengo ganas de matar...y no se que mas xD
bueno mejor me relajo...alguien puede aportarme alguna solucion?

gracias
Mmmmm... a ver, en vez de hacer una sentencia de tipo "INSERT INTO..." prueba con este codigo. No digo que la forma de insertar datos por medio de sentencias SQL sea peor o mejor, pero yo lo poco que he tocado de ASP lo hacía creando un nuevo registro directamente de esta forma.

<%
dim conn, sql, recordset
set conn = server.createobject("ADODB.connection")
conn.provider ="Microsoft.jet.OLEDB.4.0"
'La tabla y los archivos ASP se encuentran en la misma ruta
conn.open (server.mappath("tabla1.mdb"))
set recordset = server.createobject("ADODB.recordset")

sql="select * from usuarios"
recordset.open sql, conn, 1, 2
'Ahora añadimos el nuevo registro y le damos valor a los campos
recordset.addnew
recordset.fields("nombre") = request.form("nombre")
recordset.fields("login") = request.form("login")
recordset.fields("clave") = request.form("clave")
recordset.fields("email") = request.form("email")
recordset.update
recordset.close
set recordset = nothing
conn.close
set conn = nothing
%>


De todas maneras no se porque no te deja ejecutar la sentencia "INSERT INTO..." pero a mi me huele que es por culpa de los tipos de cursores y cerrojos que utiliza el recordset. Eso del adlockopenstatic, adlockreadonly etc...

Te recomiendo que visites paginas de programacion, por ejemplo http://www.desarrolloweb.com hay muchas pero esta está bastante bien.

Venga que con paciencia y saliva se la mete un elefante a una hormiga!!! [bye]
pues seria otra opcion, perocreo que tenemos que hacerlo en SQL por huevos. de todas formas si esta noche no conseguimos nada...pos mañana ire a peguntarle al profesor el porque de que no nos deje escribir. gracias de todas formas :)
2 respuestas