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

Error actualizando datos.

Estas en el tema de Error actualizando datos. en el foro de ASP Clásico en Foros del Web. Estoy intentando actualizar unos datos a través de un formulario. Por ejemplo tengo el campo nombre con el registro XXXX, y el campo e-mail con ...
  #1 (permalink)  
Antiguo 29/12/2002, 11:55
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
Pregunta Error actualizando datos.

Estoy intentando actualizar unos datos a través de un formulario.

Por ejemplo tengo el campo nombre con el registro XXXX, y el campo e-mail con [email protected], muestro el formulario con estos datos y al enviar los tendría que substituir por ejemplo por PPPP y [email protected].

Para eso uso esto:

rst.update
rst("nombre") = nombre
rst("email") = email
rst.Addnew

Es igual que para agregar dato pero al revés el updato y el addnew.

Substituir los substituye pero me elimina otro.

A ver que está mal o que se tiene que agregar.
  #2 (permalink)  
Antiguo 29/12/2002, 13:30
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 2 meses
Puntos: 29
rst.update
rst("nombre") = nombre
rst("email") = email
rst.Addnew

Esto está mal, esto sería (al revés) para agregar:

rst.Addnew
rst("nombre") = nombre
rst("email") = email
rst.update

Para actualizar quítale el addnew

rst("nombre") = nombre
rst("email") = email
rst.Update

Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 29/12/2002, 13:42
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
ya he probado de quitarle el addnew... voy a volver a probar a ver... llevo todo el día con lo de actualizar y no hay manera
  #4 (permalink)  
Antiguo 29/12/2002, 13:45
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
éste es el código que uso...

<%

set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
cnn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("***.mdb"))
sqltext = "SELECT * FROM mensajes"
rst.Open sqltext,cnn,3,3

usuario= request.form("usuario")
titulo = request.form("titulo")
mensaje= request.form("mensaje")
foro= request.form("foro")
fecha= request.form("fecha")

rst("usuario") = usuario
rst("titulo") = titulo
rst("mensaje") = mensaje
rst("foro") = foro
rst("fecha") = fecha
rst.update

rst.Close
set rst = Nothing
cnn.Close
set cnn = Nothing
%>

Y actualiza... pero a parte se vuelve el último registro... y borra otro... algo raro...
  #5 (permalink)  
Antiguo 29/12/2002, 13:45
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
Creo que no se entendió tu pregunta.

¿Lo que quieres es que el usuario vea sus datos registrados y los pueda editar para actualizarlos?
- sql="update..."

¿Añadir un nuevo registro sin más?
- sql="insert into..."
__________________
on error... resume next
  #6 (permalink)  
Antiguo 29/12/2002, 13:49
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
ahhh ok, ahora.

1. Te falta el WHERE en la sql:
sqltext = "SELECT * FROM mensajes WHERE id=" & id

La id la traes del form con un hidden, por ejemplo, y te sirve para identificar la fila a actualizar. Si no le dices qué, la bd se pone turulata

2. Te recomiendo que uses el "update into...".
__________________
on error... resume next
  #7 (permalink)  
Antiguo 29/12/2002, 14:11
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 2 meses
Puntos: 29
Claro, sin cláusula where incluso ocrriste el riego de perder todos los datos, como pasó en forosd elweb , hicieron un update sin cláusula where.

Es decir, que debes indicarle qué quieres que actualice.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #8 (permalink)  
Antiguo 29/12/2002, 14:45
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
OK, ya me funcionó, gracias
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:35.