Dificultada com Variável em Query...

Delphi

30/09/2008

Na query abaixo, precisava que a Variável VarVend só filtrasse o campo CodVendedor que é Integer, somente os que estiverem vazios, mas não sei como fazer pois eu só sei fazer da forma abaixo, filtrando os q estão com 0 (zero), só que os campos não foram preenchidos então ficam fazios.

With TbPedidos do
begin
SQL.Clear;
SQL.Add(´Select * from Pedidos´);
SQL.Add(´CodVendedor =:VarVend´);

end;
TbPedidos.ParamByName(´VarVend´).AsInteger:=0;
//esse filto como devo fazer para que traga os vazios?


Janete

Janete

Curtidas 0

Respostas

Sremulador

Sremulador

30/09/2008

veja assim

With TbPedidos do
begin
SQL.Clear;
SQL.Add(´Select * from Pedidos´);
SQL.Add(´WHERE CodVendedor IS NULL AND CodVendedor =0´);

end;
//esse filto como devo fazer para que traga os vazios?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

30/09/2008

veja assim With TbPedidos do begin SQL.Clear; SQL.Add(´Select * from Pedidos´); SQL.Add(´WHERE CodVendedor IS NULL AND CodVendedor =0´); end; //esse filto como devo fazer para que traga os vazios?

troque o [b:bb49589d43]AND[/b:bb49589d43] por [b:bb49589d43]OR[/b:bb49589d43].
o campo CodVendedor nunca será nulo e 0 ao mesmo tempo.

você ainda pode tentar assim:
With TbPedidos do
begin
  SQL.Clear;
  SQL.Add(´Select * from Pedidos´);
  SQL.Add(´WHERE coalesce(CodVendedor,0) = :VarVend´);
end;

dessa forma, você pode procurar por um vendedor específico ou por registros onde o vendedor não foi informado.
TbPedidos.ParamByName(´VarVend´).AsInteger := 0; vendedor não informado
TbPedidos.ParamByName(´VarVend´).AsInteger := 1; para o vendedor 1
mas para que isso funcione não pode haver um vendedor com código 0 (zero)


GOSTEI 0
POSTAR