| |||
Error al acceder a bd EN asp Tengo un problema con acceso a BD en ASP, y es que a la hora de hacer una modificacion en una BD me sale el siguiente error: "no se puede actualizar. BD u objeto de solo lectura, Microsoft JET database engine". Y no hay manera de hacer cambios en la BD. Me he crado el directorio virtual de forma correcta y nada. Sin embargo cuando simplemente hago una consulta no hay problema. ¿Me podriais ayudar?:ramon
__________________ muchas gracias compañeros |
| |||
Codigo de conexion a BD Cita: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
Iniciado por LeCLUB Pega el código de la conexión, será lo más rápido <html> <head> <title>Documento sin título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <% '================================================= =================================== 'Ejemplos de Base de Datos --- Carlos de la Orden Dijs --- www.aspfacil.com -- Mar/01 '================================================= =================================== 'Nuestras variables... Dim oConn, rs, SQL, iRegistro Dim iCuantos 'Nos conectamos a la base de datos... set oConn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") 'Para conectar a la base de datos, utiliza una de estas conexiones 'Solo tienes que quitar el comentario (') a la que quieras utilizar 'y comentar o borrar las otras líneas 'Access con OLEDB: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("base.mdb") 'Access con ODBC: 'oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base.mdb") 'En mi caso, tengo la cadena de conexión en una variable de aplicación 'oConn.Open Application("CadenaConn") 'Para utilizar esta, tienes que tener un fichero GLOBAL.ASA con esta línea ' Application("CadenaConn") = ... la cadena de conexión que quieras 'En el Sub Application_OnStart SQL="SELECT * FROM TablaEjemplo ORDER BY Id" 'IMPORTANTE: cursortype 1 y locktype 2 rs.Open SQL, oConn, 1, 2 'Añado un nuevo registro rs.AddNew rs.Fields("Nombre")="Visitante ASP Fácil" rs.Fields("Fecha")=Date rs.Fields("IP") = Request.ServerVariables("REMOTE_ADDR") rs.Update 'Después de guardar los cambios con update 'la ID del nuevo registro está disponible iRegistro = rs.Fields("Id") rs.Close 'Ahora vuelvo a abrir para pintar la tabla rs.Open SQL, oConn, 1, 1 if not rs.EOF then PintarTabla Response.Write("<P>El registro <b>" & iRegistro & "</b> ha sido insertado!") else Response.Write("No hay registros en esta tabla") end if rs.Close 'Y llamo a los de mantenimiento ![]() Mantenimiento 'Limpiar SIEMPRE los objetos set rs = nothing oConn.Close set oConn = nothing '================================================= ======= Sub Pin????I???????????tarTabla () 'Este es el procedimiento que pinta la tabla. 'Lo tengo aislado en un Sub para reutilizarlo Response.Write( "<TABLE BORDER=""1"">" & vbCrlf) Response.Write( "<TR>" & vbCrlf) Response.Write( "<TD><B>Id</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Nombre</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Fecha</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Dirección IP</B></TD>" & vbCrlf ) while not rs.EOF Response.Write( "<TR>" & vbCrlf ) Response.Write( "<TD>" & rs.Fields("Id") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Nombre") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Fecha") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("IP") & "</TD>" ) Response.Write( "</TR>" & vbCrlf ) rs.MoveNext wend Response.Write("</TABLE>")
__________________ muchas gracias compañeros |
| |||
Codigo conexion BD con problema Cita: Aqui está el código que me da el problema al ejecutarlo d que "ERROR, OBJETO O BD DE SOLO LECTURA", ayudadme por favor que estoy parado con esto. La BD de ACCESS no está abierta cuando accedo a ella y los permisos estan perfectos. Muchas Gracias.
Iniciado por LeCLUB Pega el código de la conexión, será lo más rápido <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <html> <head> <title>Documento sin título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <% '================================================= =================================== 'Ejemplos de Base de Datos --- Carlos de la Orden Dijs --- www.aspfacil.com -- Mar/01 '================================================= =================================== 'Nuestras variables... Dim oConn, rs, SQL, iRegistro Dim iCuantos 'Nos conectamos a la base de datos... set oConn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") 'Para conectar a la base de datos, utiliza una de estas conexiones 'Solo tienes que quitar el comentario (') a la que quieras utilizar 'y comentar o borrar las otras líneas 'Access con OLEDB: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("base.mdb") 'Access con ODBC: 'oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base.mdb") 'En mi caso, tengo la cadena de conexión en una variable de aplicación 'oConn.Open Application("CadenaConn") 'Para utilizar esta, tienes que tener un fichero GLOBAL.ASA con esta línea ' Application("CadenaConn") = ... la cadena de conexión que quieras 'En el Sub Application_OnStart SQL="SELECT * FROM TablaEjemplo ORDER BY Id" 'IMPORTANTE: cursortype 1 y locktype 2 rs.Open SQL, oConn, 1, 2 'Añado un nuevo registro rs.AddNew rs.Fields("Nombre")="Visitante ASP Fácil" rs.Fields("Fecha")=Date rs.Fields("IP") = Request.ServerVariables("REMOTE_ADDR") rs.Update 'Después de guardar los cambios con update 'la ID del nuevo registro está disponible iRegistro = rs.Fields("Id") rs.Close 'Ahora vuelvo a abrir para pintar la tabla rs.Open SQL, oConn, 1, 1 if not rs.EOF then PintarTabla Response.Write("<P>El registro <b>" & iRegistro & "</b> ha sido insertado!") else Response.Write("No hay registros en esta tabla") end if rs.Close 'Y llamo a los de mantenimiento Mantenimiento 'Limpiar SIEMPRE los objetos set rs = nothing oConn.Close set oConn = nothing '================================================= ======= Sub Pin????I???????????tarTabla () 'Este es el procedimiento que pinta la tabla. 'Lo tengo aislado en un Sub para reutilizarlo Response.Write( "<TABLE BORDER=""1"">" & vbCrlf) Response.Write( "<TR>" & vbCrlf) Response.Write( "<TD><B>Id</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Nombre</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Fecha</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Dirección IP</B></TD>" & vbCrlf ) while not rs.EOF Response.Write( "<TR>" & vbCrlf ) Response.Write( "<TD>" & rs.Fields("Id") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Nombre") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Fecha") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("IP") & "</TD>" ) Response.Write( "</TR>" & vbCrlf ) rs.MoveNext wend Response.Write("</TABLE>")
__________________ muchas gracias compañeros |