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

Control de sentencia DELETE

Estas en el tema de Control de sentencia DELETE en el foro de ASP Clásico en Foros del Web. Muy buenas; quería saber cómo puedo controlar si al ejecutar una sentencia DELETE realmente se ha eliminado algún registro, porque ejecutar un Delete de una ...
  #1 (permalink)  
Antiguo 02/11/2004, 02:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 33
Antigüedad: 19 años, 7 meses
Puntos: 0
Control de sentencia DELETE

Muy buenas; quería saber cómo puedo controlar si al ejecutar una sentencia DELETE realmente se ha eliminado algún registro, porque ejecutar un Delete de una fila inexistente no me produce ningún error. Dicho de otra forma, cómo puedo hacer para sacar un mensaje tipo "el registro que quiere borrar no existe en la tabla" cuando se pretende eliminar un registro que no existe en la tabla.

Gracias
  #2 (permalink)  
Antiguo 02/11/2004, 02:20
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
comprueba con un SELECT que existe.
antes de eliminar, claro.
  #3 (permalink)  
Antiguo 02/11/2004, 02:30
 
Fecha de Ingreso: octubre-2004
Mensajes: 33
Antigüedad: 19 años, 7 meses
Puntos: 0
Muchas gracias, pero si intento ver mediante el RecordCount si dicho registro existe, el valor siempre es -1, exista o no, a qué se debe ésto?

Por cierto, yo soy patatero también, trasgukabi

Edito porque ya he solucionado el problema, se debía a que el tipo de cursor no admitia esa propiedad, y ya está solucionado mediante este código:

Set Recaux=Server.CreateObject("ADODB.Recordset")
SQLAUX="SELECT COUNT(*) FROM Clientes WHERE Clientes.DNI="&DNI
Recaux.open SQLAUX, Con,0,2,adCmdText
reccount = Recaux(0)

if Reccount=0 then
response.write("<BR><h3>El registro a eliminar</p><p>no existe en esta tabla</h3>")
else
Set Rec=Server.CreateObject("ADODB.Recordset")
SQL="DELETE FROM Clientes WHERE DNI="&DNI

Última edición por iñi; 02/11/2004 a las 03:21
  #4 (permalink)  
Antiguo 02/11/2004, 03:34
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
No jodas!!!! por fin alguien que no está cruzando el charco, copón!!!!

el recordcount te da -1 por los cursores.

Prueba a abrir el recordset asi:
Recaux.open SQLAUX, Con,3,1

Saludos.
  #5 (permalink)  
Antiguo 02/11/2004, 03:39
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
tienes mas errores. sería así:
Código:
Recaux.open SQLAUX, Con,3,1
if rs.recordcount=0 then
response.write "no existe"
else
sql="delete...."
end if
  #6 (permalink)  
Antiguo 02/11/2004, 04:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 33
Antigüedad: 19 años, 7 meses
Puntos: 0
Con el código que he puesto en el anterior comentario funciona, pero abriendo el recorset como me has dicho tu (Recaux.open SQLAUX, Con,3,1) no, el recordcount es siempre 1 de esa manera, exista el registro o no. No sé por qué. Gracias otra vez

Última edición por iñi; 02/11/2004 a las 05:22
  #7 (permalink)  
Antiguo 02/11/2004, 05:18
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
te falta una comilla doble antes del cierre del tag.
  #8 (permalink)  
Antiguo 02/11/2004, 05:22
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Te habrás fijado que donde pone rs.recordcount es recaux.recordcount, no?

puedes probar tambien con 3,&H0001

Eso de que recordcount siempre sea uno me suena muy raro

lo del recordset, la verdad es que ni habia mirado la sentencia sql que habias usado, simplemente he visto lo que hacías y he decidido por mi cuenta y riesgo que estaba mal hecho (mira que soy torpe!!!).

Última edición por trasgukabi; 02/11/2004 a las 05:24
  #9 (permalink)  
Antiguo 02/11/2004, 05:23
 
Fecha de Ingreso: octubre-2004
Mensajes: 33
Antigüedad: 19 años, 7 meses
Puntos: 0
Ups, ya habias contestado. Ya está solucionado, gracias.

Respecto a la solución que me has propuesto antes creo haber cambiado lo de rs, pero tampoco le he dado muchas vueltas, como mi solución ya funcionaba.., quizás no lo haya hecho bien

Última edición por iñi; 02/11/2004 a las 05:29
  #10 (permalink)  
Antiguo 02/11/2004, 05:26
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
ala pues. Me voy a dormir que llevo toda la noche currando.

Nos vemos.
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 10:51.