Fórum Problemas com SQL - SELECT... #158401
07/05/2003
0
Oi pessoal!!!
é o seguinte: Criei um mecanismo de pesquisa onde algumas variaveis são preenchidas com os valores de alguns edits e se o edit estiver em branco são preenchidas com ´¬´.
Aí faço um select tipo assim:
SQL.Text:=´SELECT * FROM CLIENTES WHERE CODIGO LIKE ´+#39+Codigo+39+´ and NOME LIKE ´+39+´¬´+nome+´¬´+39+´ and ENDER LIKE ´+39+Endereco+39+´ and CEP LIKE ´+39+CEP+39+´ and CIDADE LIKE ´+39+Cidade+39+´ and ESTADO LIKE ´+39+UF+39+´ and FONE LIKE ´+39+Fone+39+´ and PESSOA LIKE ´+39+Pessoa+39+´ and CGC_CPF LIKE ´+39+CNPJ+39+´ and CGC_ICM LIKE ´+39+InscricaoEstadual+39+´ and CONTATO LIKE ´+39+Contato+39+´ and FAX LIKE ´+39+FAX+39;
tipo... com todos os campos em branco ficaria assim:
SELECT * FROM CLIENTES WHERE CODIGO LIKE ´¬´ and NOME LIKE ´¬¬¬´ and ENDER LIKE ´¬´ and CEP LIKE ´¬´ and CIDADE LIKE ´¬´ and ESTADO LIKE ´¬´ and FONE LIKE ´¬´ and PESSOA LIKE ´¬´ and CGC_CPF LIKE ´¬´ and CGC_ICM LIKE ´¬´ and CONTATO LIKE ´¬´ and FAX LIKE ´¬´
o problema é ele só retorna os registros que não tiverem nenhum campo em branco... tipo: se algum cliente não possuir numero de telefone, ppor exemplo, ele não aparecerá no resultado do select...
Outro problema é que se eu pesquisar o campo Bairro (por exemplo), que foi criado depois que todos os outros, ele só retornará os registros que foram inseridos depois da criação do campo bairro (mesmo que eu tenha modificado o valor de alguns registros antigos.
Por que isto está acontecendo? o caractere ´¬´ não é um ´Curinga´ que deveria encontrar todos os valores de um campo (incluindo em branco)?
Como posso resolver isto?
E quanto ao meu problema com o campo Bairro? como resolvo?
Valeu!!!
Aquele Abraço!!!
Tiago Farinon
é o seguinte: Criei um mecanismo de pesquisa onde algumas variaveis são preenchidas com os valores de alguns edits e se o edit estiver em branco são preenchidas com ´¬´.
Aí faço um select tipo assim:
SQL.Text:=´SELECT * FROM CLIENTES WHERE CODIGO LIKE ´+#39+Codigo+39+´ and NOME LIKE ´+39+´¬´+nome+´¬´+39+´ and ENDER LIKE ´+39+Endereco+39+´ and CEP LIKE ´+39+CEP+39+´ and CIDADE LIKE ´+39+Cidade+39+´ and ESTADO LIKE ´+39+UF+39+´ and FONE LIKE ´+39+Fone+39+´ and PESSOA LIKE ´+39+Pessoa+39+´ and CGC_CPF LIKE ´+39+CNPJ+39+´ and CGC_ICM LIKE ´+39+InscricaoEstadual+39+´ and CONTATO LIKE ´+39+Contato+39+´ and FAX LIKE ´+39+FAX+39;
tipo... com todos os campos em branco ficaria assim:
SELECT * FROM CLIENTES WHERE CODIGO LIKE ´¬´ and NOME LIKE ´¬¬¬´ and ENDER LIKE ´¬´ and CEP LIKE ´¬´ and CIDADE LIKE ´¬´ and ESTADO LIKE ´¬´ and FONE LIKE ´¬´ and PESSOA LIKE ´¬´ and CGC_CPF LIKE ´¬´ and CGC_ICM LIKE ´¬´ and CONTATO LIKE ´¬´ and FAX LIKE ´¬´
o problema é ele só retorna os registros que não tiverem nenhum campo em branco... tipo: se algum cliente não possuir numero de telefone, ppor exemplo, ele não aparecerá no resultado do select...
Outro problema é que se eu pesquisar o campo Bairro (por exemplo), que foi criado depois que todos os outros, ele só retornará os registros que foram inseridos depois da criação do campo bairro (mesmo que eu tenha modificado o valor de alguns registros antigos.
Por que isto está acontecendo? o caractere ´¬´ não é um ´Curinga´ que deveria encontrar todos os valores de um campo (incluindo em branco)?
Como posso resolver isto?
E quanto ao meu problema com o campo Bairro? como resolvo?
Valeu!!!
Aquele Abraço!!!
Tiago Farinon
Tiago Farinon
Curtir tópico
+ 0
Responder
Posts
07/05/2003
Wtjunior
Olá
Tente usar OR no lugar de AND ....
um abraço
Tente usar OR no lugar de AND ....
um abraço
Responder
Gostei + 0
07/05/2003
Tiago Farinon
Olá
Tente usar OR no lugar de AND ....
um abraço
Soh que eu quero que ele pesquise com o maximo de campos possível...
Tipo: se a pessoa souber o que o nome da pessoa é ´Maria´ e seu bairro é ´Vila-Cotovelo´ ele ache todos os registros que contenham estes dois dados... será que com OR não vai aparecer todas as marias e todos os moradores da Vila-Cotovelo?
Bom... Vou tentar de qquer maneira...
Valeu!!!
Tiago
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)