Regresar   Foros del Web > Programación para sitios web > ASP

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 06/05/08, 16:35:43   #1 (permalink)
Uefor ha deshabilitado el Karma
 
Registrado: ago 2006
Ubicación: Murcia
Mensajes: 122
Uefor is offline  
Pregunta Query con posible valor NULL

Hola a tod@s,
Tengo esta consulta que no consigo sacarle punta...
Cita:
"SELECT TOP 1 * FROM tabla WHERE (Fecha < #"&FechaEvento&"# OR Fecha IS NULL) AND (Usuario="&Usuario&" OR Usuario IS NULL) ORDER BY Fecha DESC"
Necesito ingresar en un INSERT la fecha del último evento al que asistió el usuario para establecer un orden de preferencias en el que se está apuntando, el problema es que si el usuario no ha asistido a ningún evento me da un error porque no existe en la tabla.

Alguien me dice que tengo mal hecho en la consulta please...
SaLu2
  Responder Con Cita
Antiguo 06/05/08, 17:59:13   #2 (permalink)
Moderador
Myakire tiene un muy buen nivel de karmaMyakire tiene un muy buen nivel de karmaMyakire tiene un muy buen nivel de karma
 
Registrado: nov 2002
Mensajes: 6.250
Contactar con Myakire a través de Yahoo
Myakire is offline  
Re: Query con posible valor NULL

Qué es lo que te da error?

Pon el código.

Básicamente necesitas validar si algo es null (IsNull(rs("Campo")) hacer otra cosa; también puedes dejar el campo que falla como que permita nulos, o lo que es mejor, necesitas definir bien las reglas del negocio y analizar si ese insert se debe efectuar en caso de que no haya asistido a otros eventos.

Saludos
  Responder Con Cita
Antiguo 07/05/08, 01:03:27   #3 (permalink)
Uefor ha deshabilitado el Karma
 
Registrado: ago 2006
Ubicación: Murcia
Mensajes: 122
Uefor is offline  
Re: Query con posible valor NULL

Le he puesto la función IsNull, pero sigue igual...
Código:
Dim rst, sqltext, UltimoEvento 
set rst = Server.CreateObject("ADODB.RecordSet")
sqltext = "SELECT TOP 1 Fecha FROM UsuariosEventos WHERE (Fecha < #"&FechaEventos&"# OR Fecha is null) AND (idusuario="&usuario&" OR usuario is null) ORDER BY Fecha DESC"
rst.Open sqltext, cnn

if IsNull(rst("Fecha"))  then
UltimoEvento = "01-01-2008"
else
UltimoEvento = rst("Fecha") 
end if

strSQL = "INSERT INTO UsuariosEventos  (idusuario,idevento,Fecha) VALUES('"&usuario&"','"&evento&"','"&UltimoEvento&"')"	
Cnn.Execute(strSQL)
No estoy seguro de estar usandola adecuadamente
Gracias Myakire...

Última edición por Uefor fecha: 07/05/08 a las 03:47:09. Razón: Errata
  Responder Con Cita
Antiguo 07/05/08, 08:19:27   #4 (permalink)
Lebennin ha deshabilitado el Karma
 
Registrado: sep 2005
Mensajes: 54
Lebennin is offline  
Re: Query con posible valor NULL

El problema es que estas preguntando si el registro es NULO y posiblemente el problema es que la consulta no te devuelve nada. Es decir, el código sería el siguiente:

rst.Open sqltext, cnn

if rst.EOF And rst.BOF then
UltimoEvento = "01-01-2008"
else
UltimoEvento = rst("Fecha")
end if
  Responder Con Cita
Antiguo 07/05/08, 09:29:48   #5 (permalink)
Moderador
Myakire tiene un muy buen nivel de karmaMyakire tiene un muy buen nivel de karmaMyakire tiene un muy buen nivel de karma
 
Registrado: nov 2002
Mensajes: 6.250
Contactar con Myakire a través de Yahoo
Myakire is offline  
Re: Query con posible valor NULL

El error no dirá que es lo que esta pasando. Yo suponía que era un error en el insert, pero si el error otro ....

pon el error
  Responder Con Cita
Antiguo 07/05/08, 15:43:54   #6 (permalink)
Uefor ha deshabilitado el Karma
 
Registrado: ago 2006
Ubicación: Murcia
Mensajes: 122
Uefor is offline  
Re: Query con posible valor NULL

El problema creo que es efectivamente lo que comenta Lebennin... cuando las conciciones no se cumplen
Cita:
Fecha < #"&FechaEventos&"# OR Fecha is null) AND (idusuario="&usuario&" OR usuario is null
La query en teoría debería dar un valor null, pero da el error en la variable que saco del recordset que necesito para el INSERT porque no devuelve nada.

He salido del paso poniendo un registro ficticio en la db para que si no existe la condición sea igual a ese valor en vez de null
Cita:
Fecha < #"&FechaEventos&"# OR Fecha=#01-01-2008#) AND (usuario ="&usuario &" OR usuario =4300999
He probado con ese código de Lebennin y va de lujo por lo que ese registro no me hace falta ya...
Gracias...

Última edición por Uefor fecha: 07/05/08 a las 16:27:10. Razón: Después de probar el código
  Responder Con Cita
Respuesta


Califica este Tema - Query con posible valor NULL.

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado Califica este Tema
Califica este Tema:

Reglas del foro
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está activado
Las caritas están activado
Código [IMG] está activado
Código HTML está desactivado


Todas las horas son GMT -6. La hora es 04:32:15.

Message Board Statistics

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96