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

Al modificar registro me pasa.....

Estas en el tema de Al modificar registro me pasa..... en el foro de ASP Clásico en Foros del Web. Hola amigos Tengo un bd en acces y cuando modifico un registro de dicga base me modifica todos los registros, que pasa solo debe modificar ...
  #1 (permalink)  
Antiguo 10/01/2003, 11:47
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Al modificar registro me pasa.....

Hola amigos

Tengo un bd en acces y cuando modifico un registro de dicga base me modifica todos los registros, que pasa solo debe modificar uno(el de campo cedula) ya que es este que diferencia a que registro pertenece cada usuario, y a partir de aqui modificar su nombre y apellido. Le dejo el codigo de modificar a ver si hay un error:
<html>
<body>
<%
'Declaracion de variables
Dim Obj_Conn
Dim Obj_RS
Dim Cedula
Dim Nombre
Dim Apellido
Dim strSQL

'Fin declaracion de variables

cedula = Request.Form ("cedula")
nombre = Request.Form ("nombre")
apellido = Request.Form ("apellido")


SET Obj_Conn = Server.CreateObject("ADODB.Connection")

Obj_Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\asp\cliente.mdb;"

'Suponiendo que la Tabla se llamada clientes y el campo cedula, comprobamos que la persona existe.
strSQL = "select cedula, nombre, apellido from clientes where cedula like '%"&ccedula&"%'"
SET Obj_RS = Obj_Conn.Execute(strSQL)

IF NOT Obj_RS.EOF THEN
' Usuario correcto, actualizar datos.
strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula like '%"&ccedula&"%'"

Obj_Conn.Execute(strSQL)

response.write "Los datos del alumno se han actualizado correctamente"

ELSE

response.write "El usuario no existe en la base de datos"

END IF


Obj_RS.Close
Obj_Conn.Close
SET Obj_RS = Nothing
SET Obj_Conn = Nothing


%>

</body>
</html>


Gracias Miguel los saludas desde venezuela,,,, por favor ayudenme
  #2 (permalink)  
Antiguo 10/01/2003, 12:19
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 4 meses
Puntos: 1
Utilizá esto:

strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & " ' where cedula = ' " & ccedula & " ' "

La sentencia "LIKE" significa "parecido a", y el símbolo % es un comodín, y si lo pensás, todos los números son parecidos, ¿no?

Suerte
  #3 (permalink)  
Antiguo 13/01/2003, 06:51
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Hago los cambios que me suguieren, y que ademas parecen logico y me da el siguiente erro:
Tipo de error:
Microsoft JET Database Engine (0x80040E07)
No coinciden los tipos de datos en la expresión de criterios.
/asp/modificar.asp, línea 26


Por que sera, por favor ayudenme
Miguel
  #4 (permalink)  
Antiguo 13/01/2003, 07:21
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
si cedula es de tipo string

Código:
 strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = ' " & ccedula & " ' ""
si cedula es de tipo numerico
Código:
 strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = " & ccedula & " ;"
  #5 (permalink)  
Antiguo 13/01/2003, 08:37
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
BAKANZIPP

coloco tu sugerencia, ya que tienes razon por aque el campo cedula es numerico, pero me arroja el siguiente error.
Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'cedula ='.
/asp/modificar.asp, línea 35

por favor que sera lo que esta malo

Miguel
  #6 (permalink)  
Antiguo 13/01/2003, 08:45
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 4 meses
Puntos: 1
Paciencia numeríto, ya va a salir.

A mi criterio la sintaxis debería ser
strSQL = "update clientes set nombre = ' " & nombre & " ', apellido = ' " & apellido & " ' where cedula = " & ccedula

Asegurate que los tres valores (nomvre, apellido y ccedula) tengan valores adecuados.

Suerte, y seguimos aquí para ayudarte hasta que funcione
  #7 (permalink)  
Antiguo 13/01/2003, 08:49
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
lo que posteo daniel esta correcto...
lo mio tambien...

estas seguro que lo escribiste asi?

[code]
strSQL = "update clientes set nombre = '" & nombre & "',
apellido = '" & apellido & "' where cedula = " & ccedula & " ;"


[code]
haz un

response.write strSQL

antes del execute y dinos que te muestra
  #8 (permalink)  
Antiguo 13/01/2003, 09:11
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Hice lo que me pediste, y funciono "aparentemente" por que cuando fui a cunsultar todos los campos de mi bd cambiaron y no lo quiero asi solo a la persona que tenda el numero de cedula es a la que quiero cambiar????????? despues queria intentar otra vez y me arrojaba el error anterior, te coloco todo el codigo para que me lo revise:

OJO: tu sabes que biene de un aformaulario en html con los campos cedula, nombre y apellido

bueno este es el codigo:
<html>
<body>
<%
'Declaracion de variables
Dim Obj_Conn
Dim Obj_RS
Dim Cedula
Dim Nombre
Dim Apellido
Dim strSQL

'Fin declaracion de variables

cedula = Request.Form ("cedula")
nombre = Request.Form ("nombre")
apellido = Request.Form ("apellido")


SET Obj_Conn = Server.CreateObject("ADODB.Connection")

Obj_Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\asp\cliente.mdb;"

'Suponiendo que la Tabla se llamada clientes y el campo cedula, comprobamos que la persona existe.
strSQL = "select cedula, nombre, apellido from clientes where cedula like '%"&ccedula&"%'"

SET Obj_RS = Obj_Conn.Execute(strSQL)

IF NOT Obj_RS.EOF THEN
' Usuario correcto, actualizar datos.
'strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula like '%"&ccedula&"%'"
strSQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = "& ccedula & " ;"

response.write strSQL

Obj_Conn.Execute(strSQL)

response.write "Los datos del alumno se han actualizado correctamente"

ELSE

response.write "El usuario no existe en la base de datos"

END IF


Obj_RS.Close
Obj_Conn.Close
SET Obj_RS = Nothing
SET Obj_Conn = Nothing


%>

</body>
</html>

con el response.write no me arroja nada, que pasara????
Migiel
  #9 (permalink)  
Antiguo 13/01/2003, 09:23
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
a ver...haz estos cambios

Código:

strSQL = "select cedula, nombre, apellido from clientes where cedula = & "&ccedula &" ; "


SET Obj_RS = Obj_Conn.Execute(strSQL)

IF NOT Obj_RS.EOF THEN

SQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = "& Obj_RS("cedula") & " ;"
response.write "sql actualiza=" & SQL
Obj_Conn.Execute(SQL)

response.write "Los datos del alumno se han actualizado correctamente"

ELSE

response.write "El usuario no existe en la base de datos"

END IF
  #10 (permalink)  
Antiguo 13/01/2003, 09:35
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 4 meses
Puntos: 1
¿Como es esto numerito??

A quí falta una C:
cedula = Request.Form ("cedula")

O...

Aquí sobra:
'strSQL = "update clientes set nombre = ' " & nombre & " ', apellido = ' " & apellido & " ' where cedula like '%" & c cedula & "%' "

¿Tu variable es "cedula" o "ccedula" ????????
  #11 (permalink)  
Antiguo 13/01/2003, 10:50
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
me sigue dando el error:
Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'cedula = &'.
/asp/modificar2.asp, línea 25

que pasa es que mi editor esta maol; uso Eduit plus:
el codigo fina quedo asi:
<html>
<body>
<%
'Declaracion de variables
Dim Obj_Conn
Dim Obj_RS
Dim Cedula
Dim Nombre
Dim Apellido
Dim strSQL

'Fin declaracion de variables

cedula = Request.Form ("cedula")
nombre = Request.Form ("nombre")
apellido = Request.Form ("apellido")

SET Obj_Conn = Server.CreateObject("ADODB.Connection")

Obj_Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\asp\cliente.mdb;"

'Suponiendo que la Tabla se llamada clientes y el campo cedula, comprobamos que la persona existe.
strSQL = "select cedula, nombre, apellido from clientes where cedula = & "&ccedula &" ; "

SET Obj_RS = Obj_Conn.Execute(strSQL)

IF NOT Obj_RS.EOF THEN
SQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = "& Obj_RS("cedula") & " ;"
response.write "sql actualiza=" & SQL
Obj_Conn.Execute(SQL)
response.write "Los datos del alumno se han actualizado correctamente"
ELSE
response.write "El usuario no existe en la base de datos"
END IF
Obj_RS.Close
Obj_Conn.Close
SET Obj_RS = Nothing
SET Obj_Conn = Nothing
%>

</body>
</html>


Sera que lo copie maol, me esta quebrado la cabeza :- :-p
p Miguel
  #12 (permalink)  
Antiguo 13/01/2003, 11:19
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
danielrey es cedula es mi variable pero de ninguna forma funciona por favor esto me esta rompiendo la cabeza :-p

ayuadanme........... el codigo que me pazo bakuzip
es el sigueinete

<html>
<body>
<%
'Declaracion de variables
Dim Obj_Conn
Dim Obj_RS
Dim cedula
Dim nombre
Dim apellido
Dim strSQL

'Fin declaracion de variables

cedula = Request.Form ("cedula")
nombre = Request.Form ("nombre")
apellido = Request.Form ("apellido")

SET Obj_Conn = Server.CreateObject("ADODB.Connection")

Obj_Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\asp\cliente.mdb;"

'Suponiendo que la Tabla se llamada clientes y el campo cedula, comprobamos que la persona existe.
strSQL = "select cedula, nombre, apellido from clientes where cedula = & "&cedula &" ; "

SET Obj_RS = Obj_Conn.Execute(strSQL)

IF NOT Obj_RS.EOF THEN
SQL = "update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "' where cedula = "& Obj_RS("cedula") & " ;"
response.write "sql actualiza=" & SQL
Obj_Conn.Execute(SQL)
response.write "Los datos del alumno se han actualizado correctamente"
ELSE
response.write "El usuario no existe en la base de datos"
END IF
Obj_RS.Close
Obj_Conn.Close
SET Obj_RS = Nothing
SET Obj_Conn = Nothing
%>

</body>
</html>

  #13 (permalink)  
Antiguo 13/01/2003, 11:36
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Estimados amigos.....
LO LOGRE DENTRO DEL CODIGO SOBRABA UN "&" AL LIMINARLO SE PUDO HCER LO QUE YO QUERIA

1000 GRACIAS SE QUE PUEDO CONTAR CON USTEDES SIEMPRE,,,
SABEN QUE TIENE UN AMIGO EN VENEZUELA

BUENO PRONTO ESTARE PREGUNTANDO OTRAS COSAS.....ESPERO SIEMPRE CONTAR CON UDS....



MIGUEL
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 20:02.