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

Borrar datos con chekbox....ayuda

Estas en el tema de Borrar datos con chekbox....ayuda en el foro de ASP Clásico en Foros del Web. Que tal amigos.. Bueno mi problema es el siguiente: estoy tratando de borrar datos con un chekbox segun lo explicado por urjose en las faq ...
  #1 (permalink)  
Antiguo 13/05/2003, 12:19
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Borrar datos con chekbox....ayuda

Que tal amigos..

Bueno mi problema es el siguiente:
estoy tratando de borrar datos con un chekbox segun lo explicado por urjose en las faq de asp pero no se estan borrando los registros si marco varios, solo se borra de uno a la vez y eso no me sirve. Alguien me puede decir en que estoy fallando? Le estare agradecido.

Aqui recojo el valor del codigo
input type="checkbox" name="IDclas" value="<%=Rs("cod")%

este es el sql, el valor de la variable si pasa.
SQL="DELETE * FROM clasificados WHERE cod IN('"&Request.Form("Idclas")&"')"
set rs=Con.Execute(SQL)

Muchas gracias de antemano

Tobo
  #2 (permalink)  
Antiguo 13/05/2003, 12:22
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 2
has probado a poner un response.write SQL para saber que datos te recoje en todo momento?

Un saludo
  #3 (permalink)  
Antiguo 13/05/2003, 12:29
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Si haven y me esta recogiendo la cadena correctamente.

Gracias por tu interes.

Tobo
  #4 (permalink)  
Antiguo 13/05/2003, 12:46
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
SQL="DELETE * FROM clasificados WHERE cod IN("&Request.Form("Idclas")&")"

no te están sobrando apóstrofes? Probá como puse arriba a ver que onda
__________________
...___...
  #5 (permalink)  
Antiguo 13/05/2003, 13:15
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Que tal dazuaga

Si ya lo habia intentado pero me sale este error

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'cod IN()'.

Asi sale la cadena cuando escojo varios item

3270, 3271, 3272, 3273, 3274

Realmente no entiendo que me falta.

Gracias por tu interes

Tobo
  #6 (permalink)  
Antiguo 13/05/2003, 13:49
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
puede que estén jorobando los espacios... probá de quitarlos con un replace


SQL="DELETE * FROM clasificados WHERE cod IN(" & Replace(Request.Form("Idclas"), " ", "") & ")"
__________________
...___...
  #7 (permalink)  
Antiguo 13/05/2003, 14:55
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Gracias por yu interes y colaboracion dazuaga

Lo copie y sigue exactamente igual, no borra los registros cuando selecciono varias opciones, solo los borra cuando selecciono una opcion.

Existe otro metodo ya sea con un bucle que me permita hacer esto, asi sea mas complicada, se lo agradecere.

Saludos.


Tobo
  #8 (permalink)  
Antiguo 13/05/2003, 15:25
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
con un bucle sería algo así..

Chek = Split(Request.Form("Idclas"), ", ")

For i = 0 to UBound(Chek)
SQL="DELETE * FROM clasificados WHERE cod = " & Chek(i)
Next



Otra cosa... creo que no hace falta el * en los DELETE =)
__________________
...___...
  #9 (permalink)  
Antiguo 13/05/2003, 15:50
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Que tal Dazuaga, gracias por tu colaboracion.

No se si es el codigo o que pero con el bucle sigue igual, supongo que el error no esta ahi sino en el resto del codigo.

Set con = CreateObject( "ADODB.Connection" )
Con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\productos1.mdb"))

Chek = Split(Request.Form("Idclas"), ", ")
For i = 0 to UBound(Chek)
SQL="DELETE * FROM clasificados WHERE cod = " & Chek(i)
Next

con.close
set rs = nothing
set con = nothing

Tu ves algo mal?

Gracias de antemano


Tobo
  #10 (permalink)  
Antiguo 13/05/2003, 16:17
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Claro, tomaste el EJEMPLO sin modificarlo... Te faltó ejecutar la SQL =)

Probá así


Set con = CreateObject( "ADODB.Connection" )
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\productos1.mdb"))

Chek = Split(Request.Form("Idclas"), ", ")

For i = 0 to UBound(Chek)
SQL="DELETE * FROM clasificados WHERE cod = " & Chek(i)
con.Execute(SQL) 'sin esto, no hace nada de nada!
Next

con.close
set con = nothing
  #11 (permalink)  
Antiguo 13/05/2003, 16:37
 
Fecha de Ingreso: febrero-2003
Ubicación: Barranquilla
Mensajes: 20
Antigüedad: 21 años, 3 meses
Puntos: 0
Disculpa Dazuaga no me di cuenta.

Bueno amigo ahora si funciono pero me toco colocarle las comillas simples
SQL="DELETE * FROM clasificados WHERE cod = '"& Chek(i)&"'"

Te agradesco sobremanera tu colaboracion

Saludos


Tobo
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:22.