Ver Mensaje Individual
  #2  
Antiguo 28-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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 roman.

Hice unas pruebas y con Firebird/TIBQuery, algunos cambios mediante, finalmente funcionó del modo que comentas.
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    SQL.Add('SELECT * FROM USUARIOS');
    SQL.Add('WHERE NAME = CAST(:PARAM AS VARCHAR(30))');
    SQL.Add('OR CAST(:PARAM AS VARCHAR(30)) IS NULL');
    ParamByName('PARAM').Value:= NULL;
    Open;
  end;

Con mdb/TADOQuery me trae todos los campos, aún cuando le especifique uno:
Código Delphi [-]
  with ADOQuery1 do
  begin
    Close;
    SQL.Add('SELECT * FROM COUNTRY');
    SQL.Add('WHERE (NAME = :PARAM) OR (:PARAM IS NULL)');
    Parameters.ParamByName('PARAM').Value:= 'Cuba'; // igual que con NULL
    Open;
  end;

Con BDE y TQuery si la tiene, no le encontré la vuelta (pero estos dos últimos componentes y gestores no son mi fuerte).

Saludos
__________________
Daniel Didriksen

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