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

Problemila con una bd

Estas en el tema de Problemila con una bd en el foro de ASP Clásico en Foros del Web. Hola a todos aver si me pueden solucionar este problemilla ya que a mi no se me ocurre que mas probar. Resulta que me puse ...
  #1 (permalink)  
Antiguo 12/03/2006, 10:57
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Pregunta Problemila con una bd

Hola a todos aver si me pueden solucionar este problemilla ya que a mi no se me ocurre que mas probar.
Resulta que me puse ayer a cambiar de servidor una pagina (de uno gratuito a uno de pago) y tuve que actualizar varias cosas y demas, pero resulta que cuando intento agregar, modificar o eliminar un registro me salta este codigo:
Código HTML:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.

/Control/galerias.asp, line 24
Aqui les pongo el codigo donde da el error para ver si me pueden decir en que fallo:
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="logout.asp"-->
<!--#include file="conectarbd.asp" -->
<%
iTipo = Request.form("Tipo")

Set rs = Server.CreateObject("ADODB.Recordset")

Select Case iTipo
Case 1
	SQL = "SELECT * FROM Galerias"
	
	With rs
	.Open SQL, oConn, 2, 3
	
	.addnew
	.fields("Titulo") = request.form("titulo")
	.fields("Descripcion") = request.form("descripcion")
	.fields("Fecha")=date()
	.update
	
	.Close
	End With
Case 2
	SQL = "SELECT * FROM Galerias Where ID = " & request.Form("ID")
	
	With rs
	.Open SQL, oConn, 2, 3
	
	.fields("Titulo") = request.form("titulo")
	.fields("Descripcion") = request.form("descripcion")
	.fields("Fecha")=date()
	.update
	
	.Close
	End With
End Select

If request.QueryString("Tipo") = 3 Then
	SQL = "SELECT * FROM Galerias Where ID = " & request.QueryString("ID")
	
	With rs
	.Open SQL, oConn, 2, 3
	
	.delete
	
	.Close
	End With
End if
Set rs = Nothing
oConn.Close
Set oConn = Nothing
Response.redirect("cntuser.asp")
%>
En el servidor gratuito me funcionaba todo a la perfeccion a sido todo al cambiarlo de server.

Weno aver si me pueden ayudar que se lo agradeceria muchisimo
  #2 (permalink)  
Antiguo 12/03/2006, 11:50
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
incluye esta pagina "conectarbd.asp" , es la mas importante.
  #3 (permalink)  
Antiguo 12/03/2006, 12:34
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Bueno aqui pongo el conectarbd.asp, pero lo unico que hace es crear un conexion por dsn:
Código:
<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=rincondegabriel"
%>
tambien pongo el logout, pero este no creo que sea ya que he probado a no incluirlo y tambien me salta el error:
Código:
<% 
Response.Buffer = true 
' compruebo que tengo la variable de sesion creada y con el dato correcto 
if session("Login") <> "Correcto" then 
    response.redirect "index.asp" 
    response.end 
end if 
%>
  #4 (permalink)  
Antiguo 12/03/2006, 12:38
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
debes crear el dsn en el servidor
  #5 (permalink)  
Antiguo 12/03/2006, 12:48
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Ya esta creado el dsn en el servidor, además cuando se trata de mostrar resultados lo hace perfectamente el problema esta al añadir, modificar o eliminar algún registro...
  #6 (permalink)  
Antiguo 12/03/2006, 13:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Haz dos cosas:

1. Que la carpeta donde reside la base de datos tenga permisos de escritura para el usuario del IIS.
2. Click derecho sobre la base de datos->propiedades y verifica que no tenga atributos de solo lectura.

Saludos!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 12/03/2006, 13:29
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
buff... esta complicao
e probao a cambiar la base de datos de directorio, incluso he hecho otra vacia y nada, me sigue dando ese maldito error...
  #8 (permalink)  
Antiguo 12/03/2006, 13:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
ok, pero no hiciste lo que te dije...hazlo por favor y nos cuentas
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 12/03/2006, 13:37
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
La base de datos no tiene nigun atributo, y en cuanto a los permisos de escritura, en ninguna de las carpetas que he probado a poner la base de datos habia permisos...
  #10 (permalink)  
Antiguo 12/03/2006, 13:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Cita:
Iniciado por Garet
y en cuanto a los permisos de escritura, en ninguna de las carpetas que he probado a poner la base de datos habia permisos...
A que te refieres con esto? la verdad no entendi, lo que te estoy diciendo es que tiene que haber permisos de lectura/escritura en esa carpeta para el usuario que usa el IIS
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 12/03/2006, 13:58
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Pues que todas las carpetas donde he probado a colocar la base de datos tiene los permisos de lectura/escritura, de hecho todas las carpetas del sitio tiene todos los permisos de lectura/escritura.
  #12 (permalink)  
Antiguo 12/03/2006, 14:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Para el usuario del IIS?
Estas seguro? este es un error tipico de permisos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 12/03/2006, 14:06
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Estoy trabajando en un servidor externo, con lo cual no puedo controlar el IIS del servidor, he llamado para preguntar sobre los permisos y me han dicho eso, que tengo los permisos de lectura/escritura en todas las carpetas.

Ademas en el panel de control del sitio hay una opcion que pone "Permisos de escritura Sitio web"
La cual la tengo activada
  #14 (permalink)  
Antiguo 12/03/2006, 14:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Seguramente TU si tienes permisos, pero el usuario anónimo que es quien entra al sitio desde internet no los tiene.

Los host externos normalemente tienen UN directorio en donde se colocan las BD's con los permisos de lectura y escritura para ese usuario. Seguramente no has colocado la BD en ese directorio y la tienes dentro de tu web.

Tan solo para verificar, puedes correr el sitio en local y supongo que si funcionará, incluso si esto sucede, puedes reproducir el error para asegurarte aún más.
Deberías de preguntar a soporte no por si tienes permisos de lectura-escritura, sino por la ruta dende debes de colocar la BD's.

Saludos
  #15 (permalink)  
Antiguo 12/03/2006, 14:21
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Vale, ya he hecho lo que me has dicho Myakire, mi sitio se compone de tres directorios, db, logs y wwwroot.
He metido la base de datos en la carpeta db y he actualizado la dsn a ese directorio, pero me sigue dando el error
  #16 (permalink)  
Antiguo 12/03/2006, 14:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
A ver, tu haz dicho que es un servidor externo y no tienes acceso al IIS, y sin embargo dices que haz actualizado el DSN ...., para ello necesitarías tener acceso al servidor..... a ver ¿cómo esta esto?, ¿tienes o no acceso al servidor? ¿estas probando en el web directamente?

Es que ya no entendí el contexto del problema

Ese error es por las dos causas que ya te mencionaron:
1) Tiene la propiedad de Read-Only marcada en sus propiedades
2) La BD esta en un directorio donde no hay permisos de escritura para el usuario IUSR_nomPC que es con quien se da acceso anónimo al IIS
  #17 (permalink)  
Antiguo 12/03/2006, 14:49
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Disculpa si te estoy ocasionando alguna molestia o algo, aver explico
tengo un panel de control en el cual puedo modificar las dsn.
En modo local con mi IIS me funciona perfectamente.
  #18 (permalink)  
Antiguo 12/03/2006, 15:44
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
mmmm, no, más bien tu disculpa si me he expresado de forma "golpeada", no ha sido jamás esa mi intención. A ver, ya entendí como esta tu caso, eso del panel de control me posicionó perfectamente en el contexto correcto.

Si el directorio db por algún descuido de tu ISP, no tiene permisos de escritura, no hay nada que hacer. Ellos deben de solucionar el problema.

Puedes volver a verificar la carpeta consultando las FAQ's de su host externo, ahí debe de vernir ese dato.

Ya constataste que en local funciona e incluso si tu vas a tu carpeta local y quitas el acceso a la carpeta de la BD a tu usuario IUSR_nompc, podrás obtener en local el mismo error.

Lo único que pudiera restarnos, es que tu panel de control te otorgue permisos de solo lectura al DSN, pero eso lo podemos verificar si en lugar de un acceso por ODBC te conectas con OleDB con algo como:

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bd\tuBD.mdb")

o si sabes la ruta completa, por ejemplo:
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("e:\inetpub\cgi-bin\tuBD.mdb")

Ese directorio, cgi-bin, casi siempre los host lo tienen con permisos de RW, pero eso lo tienes que verificar.

Otras cadenas de conexión
  #19 (permalink)  
Antiguo 13/03/2006, 12:13
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 22 años, 8 meses
Puntos: 1
Vale, gracias por todo ya lo he podido solucionar, resulta que al final era todo por culpa del servidor ya que aunque me decian que estaba con permiso de lectura/escritura no era asi y era solo de lectura (ademas en todo el sitio...)
Hoy he podido contactar con un tecnico diferente y me lo ha solucionado ya todo.
  #20 (permalink)  
Antiguo 13/03/2006, 19:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
Hoy he podido contactar con un tecnico diferente y me lo ha solucionado ya todo.
¿Si o no es frustante ese tipo de servicio?, y se da en todos lados, bancos, hostings, proveedores de internet, etc, etc.
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 15:47.