Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 20
kapcomx Va por buen camino
Cool null

tal vez si intentas con un if

if (desdefamilia.text='') then beginDMList.QApuntes.Close;DMList.QApuntes.SQL.Text := 'Select * From Apuntes Where (familia = null)';DMList.QApuntes.Open;
end
else
begin

DMList.QApuntes.Close;DMList.QApuntes.SQL.Text := 'Select * From Apuntes Where (familia >= '+ QuotedStr(DesdeFamilia.Text)+') and (familia <= '+ QuotedStr(HastaFamilia.Text)+')';DMList.QApuntes.Open;

end;


en mysql uso Familia is null no se si sea igual en fb 2.5 o no se si en fb2.5 sea correcto poner familia=null
Responder Con Cita
  #2  
Antiguo 09-03-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por favor, no olvidar las etiquetas de código, ejemplo:



.
Responder Con Cita
  #3  
Antiguo 09-03-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 20
kapcomx Va por buen camino
disculpas

Tienes Razon casimiro, como se me fue a olvidar jejejeje

que tal vez si intentas con un if
Código Delphi [-]
 

if (desdefamilia.text='') then 
begin
DMList.QApuntes.Close;DMList.QApuntes.SQL.Text := 'Select * From Apuntes Where (familia = null)';
DMList.QApuntes.Open;
end
else
begin

DMList.QApuntes.Close;DMList.QApuntes.SQL.Text := 'Select * From Apuntes Where (familia >= '+ QuotedStr(DesdeFamilia.Text)+') and (familia <= '+ QuotedStr(HastaFamilia.Text)+')';DMList.QApuntes.Open;

end;
Responder Con Cita
  #4  
Antiguo 09-03-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Tal vez no entiendo muy bien lo que necesitas en caso de que no existan valores en los TEdit. Por lo que veo la consulta expuesta por el compañero kapcomx muestra o los null o los del rango de acuerdo al contenido del Edit si esta vacio o no. Si lo que deseas es que muestre en conjunto el rango + los null deberias agregar a la consulta

Código Delphi [-]
and (familia is null)

y si... la forma es igual que en mysql (is null).-

Saludos
Responder Con Cita
  #5  
Antiguo 09-03-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Una cosa importante a tener en cuenta:

NULL es NULL. NULL es un valor indefinido según el estándar SQL. Al ser indefinido, NULL no es ni mayor ni menor a `''´ ni tampoco es igual. NULL es un valor único que solo es similar a NULL. Si lo que quieres es devolver opcionalmente los valores NULL tendrás que indicarlo en la consulta. Por ejemplo:
Código SQL [-]
Select * From Apuntes Where (familia between :familia_start and :familia_end) or (familia is NULL)

Ten en cuenta que el operador indicado para trabajar con NULL es `is´. NULL es tan especial que los demás operadores no son recomendados para trabar con él.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 09-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luís.

Otra opción:
Código Delphi [-]
 with QApuntes do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM APUNTES ');
    SQL.Add('WHERE FAMILIA >= :DESDE AND FAMILIA <= :HASTA OR FAMILIA IS NULL');
    ParamByName('DESDE').AsString:= DesdeFamilia.Text;
    ParamByName('HASTA').AsString:= HastaFamilia.Text;
    Open;
  end;

Saludos.

Edito: No había visto el mensaje de Chris, así que corrijo "Otra opción" por 'Una opción parecida' ...
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-03-2012 a las 16:41:05.
Responder Con Cita
  #7  
Antiguo 09-03-2012
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 22
Luis M. Va por buen camino
Saludos.

Ante todo dar las gracias a todos los que habéis respondido.
Chris tiene toda la razón, Null es Null y el único operador para trabajar con él, es IS.
He probado todas las opciones que me habéis recomendado y no me funcionaba con yo quería.
O no me devolvía ningún registro o me devolvía todos menos los null.
Así que con la idea de kapcomx y del resto de compañeros, he podido solucionar el problema.
Código Delphi [-]
  if DesdeFamilia.Text = '' then cConsulta := '(familia <= '+QuotedStr(HastaFamilia.Text)+') or (Familia is null)'
  else cConsulta := '(familia >= '+QuotedStr(DesdeFamilia.Text)+') and (Familia <= '+QuotedStr(HastaFamilia.Text)+')';
Código Delphi [-]
DMList.QApuntes.Close;
DMList.QApuntes.SQL.Text := 'Select * From Apuntes Where '+cConsulta;
DMList.QApuntes.Open;

Ahora ya me devuelve los registros dentro del rago y si "Desdefamilia" está vacío me devuelve los null.
Espero que a otros le sirva de ayuda.
Nuevamente gracias a todos por vuestra ayuda.
Responder Con Cita
  #8  
Antiguo 09-03-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Y no puedes poner todos los campos null a cadena vacía?

Código SQL [-]
update apuntes set familia='' where familia is null

Se acabó el problema.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con valores no null en FIREBIRD 2.1 Jose Roman Firebird e Interbase 11 14-01-2009 13:44:36
Consulta en campos Null| pmtzg Conexión con bases de datos 2 26-02-2008 01:38:51
Duda sobre valores null Inmi Conexión con bases de datos 2 24-09-2007 17:21:27
Problema con Valores Null crc SQL 10 20-09-2007 16:53:44
Consulta con Null T-man Firebird e Interbase 3 22-12-2004 22:30:56


La franja horaria es GMT +2. Ahora son las 20:42:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi