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

Como soluciono esto???'

Estas en el tema de Como soluciono esto???' en el foro de ASP Clásico en Foros del Web. Quiero que se puedan dar de alta los visitantes como usuarios. El nombre apellidos y nsocio los tengo ya en la base de datos y ...
  #1 (permalink)  
Antiguo 16/07/2002, 15:34
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Como soluciono esto???'

Quiero que se puedan dar de alta los visitantes como usuarios. El nombre apellidos y nsocio los tengo ya en la base de datos y quiero comprobar si coinciden los que ellos introducen con los que tengo en la base de datos y si coinciden ejecutar la actualización. Pero el problema es que no se si me ha ejecutado o no la actualizacion poque no lee bien el error q pongo en el codigo. Se que la actualizacion la ejecuta cuando se cumplen las condiciones pero el mensaje q me da no corresponde con lo que se ha hecho. Commo puedo solucionar esto??? Abajo os pongo el codigo pa q le echeis un vistazo :cantar:
<%
nsocio = Request.Form("nsocio")
usuario = Request.Form("usuario")
password = Request.Form("password")
nombre = Request.Form("nombre")
apellidos = Request.Form("apellidos")

'Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
'Como vamos a utilizar la variable rs del tipo recordset para recorrer los registros con EOF
Set rs = Server.CreateObject("ADODB.Recordset")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\jpalbox\db\usuarios.mdb&quot ;))

'Comprobamos en la tabla que el nombre del antiguo usuario existe.
sql = "SELECT * FROM Personal WHERE usuario='"&usuario&"' "
rs.Open sql, con

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If rs.EOF = false then
Response.redirect "err03.htm"
else
'Ejecuta un sentencia SQL para insertar alta
sql = "UPDATE Personal SET password ='" & password & "', usuario='" & usuario & "' WHERE nsocio='" & nsocio &"' and nombre = '" & nombre &"' and apellidos ='" & apellidos &"'"
con.Execute(sql)
'response.write "Aqui iria la actualizacion"
If Err = 0 Then
'Insercion correcta
Response.write "insercion corresta"
Else
Response.write "otro error"
End If
end if

'Libera memoria
con.Close
Set con = Nothing

%>

  #2 (permalink)  
Antiguo 16/07/2002, 15:47
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
Re: Como soluciono esto???'

prueba llamando asi a la consulta update

Código:
  
sql = "UPDATE Personal SET password ='" & password & "', usuario='" & usuario & "' WHERE nsocio='" & nsocio &"' and nombre = '" & nombre &"' and apellidos ='" & apellidos &"'" 

Set registro=con.Execute(sql)
  #3 (permalink)  
Antiguo 16/07/2002, 17:31
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Como soluciono esto???'

No entiendo la midificacion q me has dicho bakanzipp pero ha mejorado algo, me sigue dando insercion correcta cuando en verdad no realiza la insercion. Eso se produce cuando introduzco un nsocio que existe en la tabla y el nombre o apellidos no coincide con el de la tabla.

Alguna sugerencia??
  #4 (permalink)  
Antiguo 16/07/2002, 17:43
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Como soluciono esto???'

Hare la pregunta de otra manera haber si tengo más exito.

La cuestion esta el que salga uno u otro mensaje despues de que se ejectute o de error una consulta de actualización. ;)
  #5 (permalink)  
Antiguo 16/07/2002, 17: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
Re: Como soluciono esto???'

jeje..parece que estamos hablando en otro idioma...
que es lo que quieres hacer...
si no esta el usuario ingresarlo a tu base de datos..

bueno si es eso...estamos masl con la segunda sentencia sql que tienes ya que estas haciendo una actualizacion y no una insercion...

sql = "SELECT * FROM Personal WHERE usuario='"&usuario&"' "
Set rs=con.execute(sql)

Código:
  
'Si el valor EOF no existe el usuario.
If rs.EOF = false then
Response.redirect "err03.htm"
else
'Ejecuta un sentencia SQL para insertar alta
sql = "UPDATE Personal SET password ='" & password & "', usuario='" & usuario & "' WHERE nsocio='" & nsocio &"' and nombre = '" & nombre &"' and apellidos ='" & apellidos &"'" 
Set Registro=con.Execute(sql)
  #6 (permalink)  
Antiguo 16/07/2002, 18:03
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
Re: Como soluciono esto???'

otra acotacion:
Cita:
Eso se produce cuando introduzco un nsocio que existe en la tabla y el nombre o apellidos no coincide con el de la tabla.
que datos exactamente quieres actualizar?..los que salen en el update...ademas no se supone que el usuario que buscas en el 1er sql tiene que tener la misma condicion del UPDATE que sigue...?

sino te posicionas en un usuario en especifico pero cuando vas a actualizar los criterios de comparacion cambian...

ya me tengo que ir...suerte
  #7 (permalink)  
Antiguo 16/07/2002, 18:04
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Como soluciono esto???'

<b><%
nsocio = Request.Form("nsocio")
usuario = Request.Form("usuario")
password = Request.Form("password")
nombre = Request.Form("nombre")
apellidos = Request.Form("apellidos")

'Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
'Como vamos a utilizar la variable rs del tipo recordset para recorrer los registros con EOF
Set rs = Server.CreateObject("ADODB.Recordset")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\jpalbox\db\usuarios.mdb&quot ;))

'Comprobamos en la tabla que el nombre del antiguo usuario existe.
sql = "SELECT * FROM Personal WHERE usuario='"&usuario&"' "
rs.Open sql, con

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If rs.EOF = false then
Response.redirect "err03.htm"
else
'Ejecuta un sentencia SQL para insertar alta
sql = "UPDATE Personal SET password ='" & password & "', usuario='" & usuario & "' WHERE nsocio='" & nsocio &"' and nombre = '" & nombre &"' and apellidos ='" & apellidos &"'"
Set registro=con.Execute(sql)
'con.Execute(sql)
'response.write "Aqui iria la actualizacion"
If Err=0 Then
Response.write "insercion correcta"

Else
'Insercion incorrecta
Response.write "insercion incorresta"

End If
end if

'Libera memoria
con.Close
Set con = Nothing

%>

Colega ya lo intente y sigue dando el mismo error no interpreta bien a la hora de mostar los mensajes, por que la sentencia sql si la hace bien.
  #8 (permalink)  
Antiguo 16/07/2002, 19:42
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 3 meses
Puntos: 7
Re: Como soluciono esto???'

("ADODB.Recordset")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\jpalbox\db\usuarios.mdb&quot ;))
===============================
Aqui tengo una aclaracion para ti, si usas ODBC, no tienes que especificarle la direcci'on donde esta la BD, solo tienes que abrir la Connecion asi:
con.Open "NombredelODBC"
===============================

Por otro lado, yo veo tu código bien, fijate a ver si estas rebisando la BD que el programa esta actualizando, recuerda que la BD en donde se te estan guardando los datos en en \jpalbox\db\usuarios.mdb, te lo digo porque una ves me pas'o, que cree un ODBC en una ruta en donde tenia una BD de seguridad, entonces hacia las insersiones en la otra BD y no en la que yo creia.
Casi me arranque los moños pensado porque rayos me decia registro actualizado y en la BD no me aparecia nada.

.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pesimo gusto contentarse con algo mediocre cuando lo excelente esta a nuestro alcance--
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 02:14.