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

No me funciona un Delete.

Estas en el tema de No me funciona un Delete. en el foro de ASP Clásico en Foros del Web. Pues lo he probado directamente en access y tampoco. En una Web tengo un apartado de encuestas, la tabla es esta: [URL=http://imageshack.us/photo/my-images/821/dibujojwx.jpg/] Tengo una opción ...
  #1 (permalink)  
Antiguo 06/10/2011, 04:07
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 5 meses
Puntos: 6
No me funciona un Delete.

Pues lo he probado directamente en access y tampoco.

En una Web tengo un apartado de encuestas, la tabla es esta:

[URL=http://imageshack.us/photo/my-images/821/dibujojwx.jpg/]

Tengo una opción de borrado que me ejecuta la siguiente sentencia:

Código:
Delete * from tencuestas where coen = 1002 and enselec <> 'portada'
Es decir, borro los registros sin más, siempre y cuando no sea la encuesta que aparece en la portada (index), para borrar esta primero tienes que seleccionar otra encuesta para el index y después la puedes borrar.

Pues bien, no funciona, me he ido al Access y he cambiado el Delete por el Select y no me devuelve ningún registro, he probado con "", null y empty con el mismo resultado, no me devuelve registro y por tanto no me borra ninguno

Sé que tiene que ser una tontería, pero no veo el fallo ¿lo veis vosotros?

Tal como tenéis la tabla, si ejecutáis:


Código:
Select * from tencuestas where coen = 1002 and enselec <> 'portada'
Deberían de aparecer todos los registros con el código 1002 puesto que el campo enselec está vacío o nulo, pues bien, me devuelve una consulta vacía, sin registros.

Esta consulta tampoco me devuelve registros:
Cita:
SELECT * from tencuestas where coen = 1002 and enselec = ''
El problema creo que está en el campo enselec (Encuesta Seleccionada) es de tipo string de 20 de ancho.
  #2 (permalink)  
Antiguo 06/10/2011, 04:26
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: No me funciona un Delete.

Solucionado, es por el valor null.

Tengo que acostumbrarme en el insert a poner todos los campos tengan o no valor para poder usar el ='' o <>''. Si en el insert no especificas un campo este se guarda con valor null, creía tener esto solucionado en el alta pero no.

De hecho si me dejó borrar la encuesta 1003 y la 1002 no, porque el campo ENSELEC en la primera tenía valor Empty y en la segunda null.

No he modificado el código del insert, he modiificado el de borrado de esta manera:

Código:
Delete * from tencuestas where coen = 1001 and (enselec <> 'portada' or enselec is null)
  #3 (permalink)  
Antiguo 06/10/2011, 04:51
 
Fecha de Ingreso: septiembre-2011
Mensajes: 116
Antigüedad: 12 años, 7 meses
Puntos: 8
Respuesta: No me funciona un Delete.

También puedes especificar en el diseño de tu tabla de la base de datos que una columna siempre tenga un valor por defecto, como por ejemplo 0.

De esta manera no tienes que controlar todos los campos a la hora de hacer un insert.

Un saludo.

Etiquetas: access, asp, delete, select, sql
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 11:29.