Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dark-Player--

[Resolvido] Consulta por SQL

Recommended Posts

Eae galera, é o seguinte: eu estou com um dbgrid, alguns edits, um botao, um IBQUERY e um DataSource.. fiz todas as ligações direitinho, no comando SQL eu coloquei:

DMVendas.SqlConCliente.close;
DMVendas.SqlConCliente.ParamByName('codini').AsInteger:=strtoint(edtCodIni.Text);
DMVendas.SqlConCliente.ParamByName('codfin').AsInteger:=strtoint(edtCodFin.Text);
DMVendas.SqlConCliente.ParamByName('nome').AsString:=edtNome1.Text+'%';
DMVendas.SqlConCliente.ParamByName('telefone').AsString:=edtTele.Text+'%';
DMVendas.SqlConCliente.ParamByName('endereco').AsString:=edtEnder.Text+'%';
DMVendas.SqlConCliente.Open;

 

no componente IBQUERY e na aba SQL eu coloquei:

select * from cliente
where CODIGO >= :codini and CODIGO <= :codfin and NOME like :nome and TELEFONE like :telefone and ENDERECO like :endereco

 

e na aba Params eu adicionei e coloquei as seguintes propriedades

0 - codini - DataType é ftInteger e com Value = 0 e type Integer

1 - codfin - DataType é ftInteger e com Value = 9999 e type Integer

2 - nome - DataType é ftString e com Value = % e type String

3 - telefone - DataType é ftString e com Value = % e type String

4 - endereco - DataType é ftString e com Value = % e type String

 

O problema é que quando vou fazer a consulta aparece somente os registros que estao com TODOS os campos preenchidos, ou seja, aqueles campos que nao é preciso inserir não aparece... e outra coisa, eu NÃO consigo fazer buscas nem pelo NOME,TELEFONE ou ENDEREÇO, mas pelo código eu consigo..

 

Alguem poderia me ajudar. Obrigado

Eu acho que estou fazendo errado é no Params..

Compartilhar este post


Link para o post
Compartilhar em outros sites

PROBLEMA RESOLVIDO..

 

Mudei o codigo do SQL para

select * from cliente
where CODIGO >= :codini and CODIGO <= :codfin and NOME like :nome and TELEFONE like :telefone or TELEFONE like '' and ENDERECO like :endereco or ENDERECO like ''

 

e Também mudei o codigo para

 

 DMVendas.SqlConCliente.close;
   DMVendas.SqlConCliente.ParamByName('codini').AsInteger:=strtoint(edtCodIni.Text);
   DMVendas.SqlConCliente.ParamByName('codfin').AsInteger:=strtoint(edtCodFin.Text);
   DMVendas.SqlConCliente.ParamByName('nome').AsString:='%'+edtNome1.Text+'%';
   DMVendas.SqlConCliente.ParamByName('telefone').AsString:='%'+edtTele.Text+'%';
   DMVendas.SqlConCliente.ParamByName('endereco').AsString:='%'+edtEnder.Text+'%';
   DMVendas.SqlConCliente.Open;

 

 

SOMENTE ISSO

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.