Foros del Web » Programando para Internet » ASP Clásico »

Error al acceder a bd EN asp

Estas en el tema de Error al acceder a bd EN asp en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/06/2004, 04:55
 
Fecha de Ingreso: diciembre-2003
Mensajes: 25
Antigüedad: 20 años, 6 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 16/06/2004, 05:12
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 4 meses
Puntos: 1
¿Has dado permisos de escritura al directorio donde has alojado la base de datos?
¿Has descartado que el error sea por problemas con el codigo?

Intenta insertar un registro simple, algo como:

<%
rs.addnew
rs("campo1")="blabla"
rs("campo2")="blabla"
rs.update
%>
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 16/06/2004, 05:12
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 20 años, 5 meses
Puntos: 0
Mira a ver si tienes las proepiedades del archivos de base de datos marcadas como de solo lectura., o bien el directorio en el cual se encuentra.
  #4 (permalink)  
Antiguo 16/06/2004, 17:28
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
jejeje, y sobre todo, NO TENGAS LA BASE DE DATOS ACCESS ABIERTA EN WINDOWS mientras intentas actualizar datos, suele dar problemas
  #5 (permalink)  
Antiguo 17/06/2004, 05:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 25
Antigüedad: 20 años, 6 meses
Puntos: 0
Pues No Es Nada De Eso, Tengo La Bd Cerrada, Y No Esta Como De Solo Lectura, ¿que Puede Ser?
__________________
muchas gracias compañeros
  #6 (permalink)  
Antiguo 17/06/2004, 05:24
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
Pega el código de la conexión, será lo más rápido
  #7 (permalink)  
Antiguo 21/06/2004, 05:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 25
Antigüedad: 20 años, 6 meses
Puntos: 0
Codigo de conexion a BD

Cita:
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&iacute;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
  #8 (permalink)  
Antiguo 22/06/2004, 06:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 25
Antigüedad: 20 años, 6 meses
Puntos: 0
Codigo conexion BD con problema

Cita:
Iniciado por LeCLUB
Pega el código de la conexión, será lo más rápido
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.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Documento sin t&iacute;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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.