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

Error en Update

Estas en el tema de Error en Update en el foro de ASP Clásico en Foros del Web. Hola a todos, estoy tratando de hacer una actualizacion en una tabla pero al momento de meter el codigo en un DO WHILE, me aparece ...
  #1 (permalink)  
Antiguo 19/06/2006, 16:55
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 5 meses
Puntos: 0
Exclamación Error en Update

Hola a todos, estoy tratando de hacer una actualizacion en una tabla pero al momento de meter el codigo en un DO WHILE, me aparece este error, a pesar que la base de datos tiene los permisos de escritura:
Código PHP:
Tipo de error:
Microsoft JET Database Engine (0x80004005)
La operación debe usar una consulta actualizable.
/cargainicial/index.asplínea 30 (Es la linea del UPDATE) 
Pero si lo pongo fuera del DO, si funciona el update a que se puede dar, este es el codigo q uso
Código PHP:
Set rs=Server.CreateObject("adodb.recordset")
sql="SELECT data.estprov, MINTM_PROVINCIA.PROVIN_C_codigo,MINTM_DEPARTAMENTO.DEPART_C_CODIGO FROM MINTM_DISTRITO, (MINTM_PROVINCIA INNER JOIN data ON MINTM_PROVINCIA.PROVIN_C_DESCRIPCION = data.estprov) INNER JOIN MINTM_DEPARTAMENTO ON data.estdpto = MINTM_DEPARTAMENTO.DEPART_C_CODIGO WHERE (data.estprov)=(([MINTM_PROVINCIA].[PROVIN_C_DESCRIPCION] ))and data.estdpto = MINTM_DEPARTAMENTO.DEPART_C_CODIGO"
rs.open sqlcn
 
Do while not rs.eof
Set rt
=Server.CreateObject("adodb.recordset")
sqld="Update data set estprov='"&rs(1)&"' WHERE estprov='"&rs(0)&"'and estdpto ='"&rs(2)&"'"
 
rt.open sqld,cn
rs
.movenext
Loop
%> 
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
  #2 (permalink)  
Antiguo 19/06/2006, 17:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hola pepelucho, este es un clásico error de permisos, asegúrate que tu base de datos tenga permisos de lectura/escritura para el usuario del IIS.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 19/06/2006, 22:51
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 5 meses
Puntos: 0
si tiene permisos, cuando hago la consulta con un registro funciona pero cuando mando a toda la bd sale ese error
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
  #4 (permalink)  
Antiguo 19/06/2006, 22:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Precisamente porque no tienes permiso de escritura sobre la base de datos o sobre el folder que la contiene, por favor verifica esto si es que es el update, si no es el update, lo que te recomendaria es hacer un execute a la conexion en lugar de abrir otro recordset, pero para mi, el error es lo primero.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 20/06/2006, 02:54
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
yo también lo veo como permiso de escritura... xq no haces esto?

Set rs=Server.CreateObject("adodb.recordset")
sql="SELECT data.estprov, MINTM_PROVINCIA.PROVIN_C_codigo,MINTM_DEPARTAMENTO .DEPART_C_CODIGO FROM MINTM_DISTRITO, (MINTM_PROVINCIA INNER JOIN data ON MINTM_PROVINCIA.PROVIN_C_DESCRIPCION = data.estprov) INNER JOIN MINTM_DEPARTAMENTO ON data.estdpto = MINTM_DEPARTAMENTO.DEPART_C_CODIGO WHERE (data.estprov)=(([MINTM_PROVINCIA].[PROVIN_C_DESCRIPCION] ))and data.estdpto = MINTM_DEPARTAMENTO.DEPART_C_CODIGO"
rs.open sql, cn

Do while not rs.eof
Set rt
=Server.CreateObject("adodb.recordset")
sqld="Update data set estprov='"&rs(1)&"' WHERE estprov='"&rs(0)&"'and estdpto ='"&rs(2)&"'"
response.write(sqld&"<br />")
'rt.open sqld,cn
rs
.movenext
Loop
%>

lo que va a hacer es pintar cada query que se ejecutaría... luego corre uno por uno para ver cuál te manda el error.
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
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 01:12.