Sql clientes de ´A´ a ´Z´
Amigos estou tentando fazer um filtro de clientes preciso selecionar clientes de ´A´ a ´Z´ ou de acordo com o valor colocado nos edits
sqlfiltro := ´ Select * from clientes where id <> -1 ´
if edit1.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome >= ´ + quotedstr(edit1.Text);
if edit2.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome <= ´ + quotedstr(edit2.Text);
exemplo
edit1.text := ´A´;
ele traz todos clientes iniciados >= A esse funciona beleza
edit2.text := ´Z´;
ele deveria trazer todos <= ´Z´ mas ele não ta trazendo o ´Z´ o igal não ta valendo nada ja tentei o like mas ele anula o ´<´ e só traz o ´Z´
alguem pode me dar uma solução para isso desde ja agradeço
obrigado....
Firebird 1.5
Delphi 7.0
o problema é q o >= funciona belza mais o <= não traz o cliente iniciado com o ´Z´
sqlfiltro := ´ Select * from clientes where id <> -1 ´
if edit1.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome >= ´ + quotedstr(edit1.Text);
if edit2.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome <= ´ + quotedstr(edit2.Text);
exemplo
edit1.text := ´A´;
ele traz todos clientes iniciados >= A esse funciona beleza
edit2.text := ´Z´;
ele deveria trazer todos <= ´Z´ mas ele não ta trazendo o ´Z´ o igal não ta valendo nada ja tentei o like mas ele anula o ´<´ e só traz o ´Z´
alguem pode me dar uma solução para isso desde ja agradeço
obrigado....
Firebird 1.5
Delphi 7.0
o problema é q o >= funciona belza mais o <= não traz o cliente iniciado com o ´Z´
Marcusbraga
Curtidas 0
Respostas
Rjun
11/03/2006
A não ser que você tenha um cliente chamado ´Z´, ele realmente não vai trazer. O que você pode fazer é se o edit2.Text for ´Z´, você desconsiderar essa parte do filtro.
GOSTEI 0
Marcusbraga
11/03/2006
tenho um cliente chamado ´Z´
só que se eu desconsiderar essa parte do filtro para ´Z´ terei que fazer desconsiderar todo o alfabeto,
e se edit2 for ´M´ o ´M´ tambem não vai vir e se eu desconsidero essa parte ele vai me traze todos até o ´Z´
mas mesmo assim obrigado pela dica, só que não resolve meu problema.
só que se eu desconsiderar essa parte do filtro para ´Z´ terei que fazer desconsiderar todo o alfabeto,
e se edit2 for ´M´ o ´M´ tambem não vai vir e se eu desconsidero essa parte ele vai me traze todos até o ´Z´
mas mesmo assim obrigado pela dica, só que não resolve meu problema.
GOSTEI 0
Edilcimar
11/03/2006
faça assim
if edit2.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome < ´ + quotedstr(Chr(Ord(edit2.Text)+1));
if edit2.Text <> ´´ then
sqlFiltro := sqlFiltro + ´ and clientes.nome < ´ + quotedstr(Chr(Ord(edit2.Text)+1));
GOSTEI 0
Marcusbraga
11/03/2006
Edilcimar, sua ideia daria certinho mais infelizmente ta dando uma incompatibilidade de tipos
sqlFiltro := sqlFiltro + ´ and clientes.nome < ´ + quotedstr(Chr(Ord(edit2.Text)+1));
se funcionasse seria perfeito
sqlFiltro := sqlFiltro + ´ and clientes.nome < ´ + quotedstr(Chr(Ord(edit2.Text)+1));
se funcionasse seria perfeito
GOSTEI 0
Edilcimar
11/03/2006
então jogue o edit2.text dentro de uma variável e tente
GOSTEI 0
Motta
11/03/2006
tente :
O ZZZZZ força a busca pelo nome ,
ZULMIRA < ´ZZZZZZ´ e não é < ´Z´
if edit1.Text <> ´´ then sqlFiltro := sqlFiltro + ´ and clientes.nome >= ´ + quotedstr(edit1.Text); if edit2.Text <> ´´ then sqlFiltro := sqlFiltro + ´ and clientes.nome <= ´ + quotedstr(edit2.Text) + ´ZZZZZZ´;
O ZZZZZ força a busca pelo nome ,
ZULMIRA < ´ZZZZZZ´ e não é < ´Z´
GOSTEI 0
Mmbarros
11/03/2006
O Motta esta correto...
se voçê adicionar mais de uma letra ´Z´ a consulta irá exibir os registros iniciados com Z...
Também tive este problema e resolví desta forma!
se voçê adicionar mais de uma letra ´Z´ a consulta irá exibir os registros iniciados com Z...
Também tive este problema e resolví desta forma!
GOSTEI 0