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

Saber si se ejecuta una actualización o no

Estas en el tema de Saber si se ejecuta una actualización o no en el foro de ASP Clásico en Foros del Web. Necesito saber si se ha realizado o no una actualizacion. Abajo pongo el codigo q tengo, nsocio, nombre y apellidos los tengo en la base ...
  #1 (permalink)  
Antiguo 15/07/2002, 16:58
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Saber si se ejecuta una actualización o no

Necesito saber si se ha realizado o no una actualizacion. Abajo pongo el codigo q tengo, nsocio, nombre y apellidos los tengo en la base de datos ya y los nuevos datos q introduzco quiero comprobarlos con los que tengo en la tabla y si coinciden q se ejecute la actualizacion. El codigo casi lo tengo, cuando coinciden se actualiza y cuando no coinciden no se actualiza, pero necesito que el mensaje de la actualización o el error salga. Como lo puedo hacer??
;)
<%
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 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)



end if

'Libera memoria
con.Close
Set con = Nothing

%>

  #2 (permalink)  
Antiguo 15/07/2002, 17:17
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Saber si se ejecuta una actualización o no

Me parece que lo que deberías hacer es validar los datos del usuario en una sola página (en caso de que los datos del usuario sean correctos le das el valor de True a una variable de Sesión por ej: Session("gooduser") = True) y después a partir de ahí permitirle a los usuarios registrados realizar las actualizaciones que necesiten.
Por otro lado para saber si una actualización se realizó o no, lo que debes haces es algo como esto:

Function actualizar(cnn)
set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = cnn
cmd.CommandText = "UPDATE tabla SET bla bla bla "
On Error Resume Next
cmd.Execute
If Err then
actualizar = False
else
actualizar = True
end if
set cmd = Nothing
End Function

set cnn = Server.CreateObject("ADODB.Connection")
strcon = cadenadeconexion
cnn.Open

If actualizar(cnn) then
Response.write("La actualización se realizó correctamente")
else
Response.write("Hubo un error al realizar la actualización")
end if
cnn.Close
set cnn = Nothing

Eso es todo. En caso de que realices varias actualizaciones sobre la Base de Datos (me refiero a actualizaciones con distintas sentencias) deberías además utilizar transacciones para garantizar la integridad de los datos. Para hacerlo, después de abrir la conexión agregás cnn.BeginTrans y en caso de que la función actualizar devuelva un valor True ponés cnn.CommitTrans, en caso contrario utilizas cnn.RollBackTrans

Espero que te sirva.

Saludos :cantar:


<center><font face=Verdana size=2>Webmaster de [/CODE]<A href="http://www.salirxtucuman.com.ar" target="_blank"><img src="http://www.efrance.fr/salirxtucuman/images/titulo.gif" border=0 align="absmiddle"></a></center>
  #3 (permalink)  
Antiguo 15/07/2002, 17:31
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Saber si se ejecuta una actualización o no


Tenia este codigo primero pero siempre me da insercion correcta, cuando en realidad no se ejecuta la sentencia de insertar.

&lt;%
nsocio = Request.Form(&quot;nsocio&quot;)
usuario = Request.Form(&quot;usuario&quot;)
password = Request.Form(&quot;password&quot;)
nombre = Request.Form(&quot;nombre&quot;)
apellidos = Request.Form(&quot;apellidos&quot;)

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

'Comprobamos en la tabla que el nombre del antiguo usuario existe.
sql = &quot;SELECT * FROM Personal WHERE usuario='&quot;&amp;usuario&amp;&quot;' &quot;
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 &quot;err03.htm&quot;
else
'Ejecuta un sentencia SQL para insertar alta
sql = &quot;UPDATE Personal SET password ='&quot; &amp; password &amp; &quot;', usuario='&quot; &amp; usuario &amp; &quot;' WHERE nsocio='&quot; &amp; nsocio &amp;&quot;' and nombre = '&quot; &amp; nombre &amp;&quot;' and apellidos ='&quot; &amp; apellidos &amp;&quot;'&quot;
con.Execute(sql)
'response.write &quot;Aqui iria la actualizacion&quot;
If Err = 0 Then
'Insercion correcta
Response.write &quot;insercion corresta&quot;
Else
Response.write &quot;otro error&quot;
End If
end if

'Libera memoria
con.Close
Set con = Nothing

%&gt;
????
  #4 (permalink)  
Antiguo 15/07/2002, 17:53
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Saber si se ejecuta una actualización o no

No se os ocurre na??
  #5 (permalink)  
Antiguo 15/07/2002, 18:04
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Saber si se ejecuta una actualización o no

Si quieres seguir haciendolo así a pesar de lo que te dije, la solución está en poner la instrucción On Error Resume Next antes de con.Execute(sql). Sería así:

On Error Resume Next
con.Execute(sql)
If Err Then
Response.write &quot;Inserción incorrecta&quot;
Else
Response.write &quot;Inserción correcta&quot;
End If

Si hubieras leido la respuesta que te puse te tendrías q haber dado cuenta :P

<center><font face=Verdana size=2>Webmaster de [/CODE]<A href="http://www.salirxtucuman.com.ar" target="_blank"><img src="http://www.efrance.fr/salirxtucuman/images/titulo.gif" border=0 align="absmiddle"></a></center>
  #6 (permalink)  
Antiguo 15/07/2002, 18:17
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Saber si se ejecuta una actualización o no

Perdona q no me halla dado cuenta, lo he probado y utilizo como servidor brinkster.com y no me deja subir esa sentencia me dice algo asi
Error : Improper use of 'on error resume next'. Please remove.

otra opciion???
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 00:16.