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

Pequeño problema para actualizar

Estas en el tema de Pequeño problema para actualizar en el foro de ASP Clásico en Foros del Web. Muy buenas tengo una pequeña duda, he buscado por los foros y he visto que ya ha surgido pero no la entiendo y por ello ...
  #1 (permalink)  
Antiguo 21/10/2005, 05:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Sonrisa Pequeño problema para actualizar

Muy buenas tengo una pequeña duda, he buscado por los foros y he visto que ya ha surgido pero no la entiendo y por ello expongo mi caso.

Este es mi codigo

Set con = Server.CreateObject("ADODB.Connection")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Tienda.mdb"

sql2 = "SELECT CodCli FROM CLIENTES WHERE (CorreoCli='" & Request.Form("correo") & "' and ContraseñaCli='" & Request.Form("contraseña") & "')"

set rec2 = Server.CreateObject("ADODB.Recordset")
rec2 = con.execute(sql2)

sql = "UPDATE CLIENTES SET NomCli='" & Request.Form("nombre") & "', ApeCli='" & _
Request.Form("apellidos") & "', DireCli='" & Request.Form("direccion") & "', CiuCli='" & _
Request.Form("ciudad") & "', ProvinCli= '" & Request.Form("provincia") & "', PostalCli=" & _
Request.Form("codpostal") & ", PaisCli='" & Request.Form("pais") & "',TlfoCli= " & _
Request.Form("telefono") & ", ContraseñaCli='" & Request.Form("contraseña") & "', CorreoCli ='" & _
Request.Form("correo") & "', PreguntaCli= '" & Request.Form("pregunta") & "' WHERE CodCli=" & rec2("CodCli") & " "

set rec = Server.CreateObject("ADODB.Recordset")
rec = con.execute(sql)

Al intentar actualizar un registro utilizo CodCli que es el unico que no se puede modificar porque es el codido del cliente a actualizar. Es un dato autonumerico de BD Access y el error no puede ser porque no exista porque esta pagina viene precedida de otra que muestra sus datos con lo cual el cliente existe y rec2("CodCli") me deberia devolver el valor del codigo del cliente.

El error que me da es este
(0x80020009)
Ocurrió una excepción.

Gracias de antemano
  #2 (permalink)  
Antiguo 21/10/2005, 13:33
Avatar de ivangar  
Fecha de Ingreso: septiembre-2005
Ubicación: méxico df
Mensajes: 99
Antigüedad: 18 años, 8 meses
Puntos: 0
Que tal línea, me encuentro con el mismo problema, de hecho yo realizo una busqueda del registro que quiero modificar, y me lo muestra en una tabla de resultados, ahi el numero de registro (campo autonúmerico) me permite ir al formulario de actualización, ahora bien, no sé si se tenga que omitir ese campo en el juego de registros o en tu caso CodCli

el error que me aparece es el siguiente:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] No se puede actualizar 'Registro'; el campo no es actualizable.
/modifreg.asp, line 111


Revisaré el tuyo a ver si puedo encontrar una solución, aunque al parecer estamos con el mismo problema amigo!!!

Saludos!!

Iván
  #3 (permalink)  
Antiguo 22/10/2005, 06:20
 
Fecha de Ingreso: octubre-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Q tal Ivangar, tu problema me surgio a mi una vez. Si es el que yo creo que es ya que mi nivel dista mucho de un profesional.

No se si sabes que debes dar permisos a la base de datos para manejarla. Si no lo has echo puede que tu problema sea ese.

Puedes hacer esto, pincha en tu BD y boton derecho, propiedades, seguridad y una vez ahi seleccionas para todos los usuarios control total, y prueba.

Hay un inconveniente puede que no te aparezca la pestaña seguridad, porque tienes que modificar algo que no me acuerdo, lo siento.

Haber si consigo acordarme y te lo digo.

Un saludo desde España.
  #4 (permalink)  
Antiguo 23/10/2005, 13:08
Avatar de ivangar  
Fecha de Ingreso: septiembre-2005
Ubicación: méxico df
Mensajes: 99
Antigüedad: 18 años, 8 meses
Puntos: 0
hola linea!!! muchas gracias jeje de hecho tengo el control total de la base de datos pero no sé a que se refiere ese problema, pero de cualquier modo seguiré revisando para ver que es, tú como vas con él problema??

Saludos desde México!!!
  #5 (permalink)  
Antiguo 27/10/2005, 03:54
 
Fecha de Ingreso: octubre-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Ya lo resolvi Ivan. He cambiado la orden UPDATE, mira por si te sirve.

Antes hacia dos llamadas a la base de datos una para seleccionar el cliente que quiere actualizar sql2 y otra para actualizarlo sql. Ahora lo que hago es hacerlo todo en una misma, pero lo que hago es que en el formulario donde muestro los datos del cliente meto un campo oculto con CodCli y envio el formulario.

sql = "UPDATE CLIENTES SET NomCli='" & Request.Form("nombre") & "', ApeCli='" & Request.Form("apellidos") & "', DireCli='" & Request.Form("direccion") & "', CiuCli='" & Request.Form("ciudad") & "', ProvinCli= '" & Request.Form("provincia") & "', PostalCli=" & Request.Form("codpostal") & ", PaisCli='" & Request.Form("pais") & "',TlfoCli= " & Request.Form("telefono") & ", ContrasenaCli='" & Request.Form("contraseña") & "', CorreoCli ='" & _
Request.Form("correo") & "', PreguntaCli= '" & Request.Form("pregunta") & "' WHERE CodCli=" & Request.Form("codcli") & " "

Tu problema no tengo mucha idea sin ver el UPDATE que estas haciendo pero
piensa que un formato autonumerico "Registro" normalmente suele ser la clave principal para seleccionar la tabla y por tanto no lo puedes modificar porque se podria dar el caso de que un cliente modificara su "Registro" y pusiera el mismo que otro cliente y no puede ser porque no se puede repetir la clave principal, por lo tanto no puede haber 2 clientes con el mismo "Registro".

No se si estas intentanto actualizar "Registro" pero si es asi, ese puede ser tu problema, haz como yo utiliza "Registro" para seleccionarlo y lo pasas por el formulario con un campo oculto.

Espero que te sirva.

Un saludo
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 14:13.