Como pesquisar por vários campos

Delphi

11/05/2005

Fiz um form de pesquisa, onde ele serve para todas as tabelas. Tenho um combobox q pega todos so campos da tabela e quero ter a opção de pesquisar por todos os campos.

O problema é o seguinte, fiz um query assim:
if edTabela.Text = ´Produtos´ then begin qProduto.Close; qProduto.SQL.Clear; qProduto.SQL.Add(´select * from Produtos where ´+ComboBox1.Text+´ like :ParamProduto´); qProduto.Sql.Add(´order by Codigo´); qProduto.ParamByName(´ParamProduto´).AsString := edPesquisa.Text + ´¬´; qProduto.Open; end;

para campos alfanumérico funciona blz, o problema está qdo seleciono no combo um campo de outro tipo como inteiro, data, etc...

Como resolver isso? pois quero poder pesquisar por todos os campos independente do tipo dele.

Obrigado


Marco

Marco

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

11/05/2005

Ve se te ajuda em algo:

qProduto.Close;
qProduto.SQL.Clear;
qProduto.SQL.Add(´select * from Produtos´);
for i:= 0 to DataSet.FieldCount -1 do
begin
if (DataSet.Fields[i].Fieldname = ComboBox1.Text) and (DataSet.Fields[i].DataType = ftinteger) then
begin
qProduto.sql.add(´where ´+ComboBox1.Text+´= :paramproduto´);
qProduto.ParamByName(´ParamProduto´).Asinteger := strtoint(edPesquisa.Text);
end
else
begin
qproduto.sql.add(´where ´+ComboBox1.Text+´ like :ParamProduto´);
qProduto.ParamByName(´ParamProduto´).AsString := edPesquisa.Text+ ´¬´;
end;
qProduto.Sql.Add(´order by Codigo´);
qproduto.open


GOSTEI 0
Raserafim

Raserafim

11/05/2005

esperimente troca de AsString para AsVariant
qProduto.ParamByName(´ParamProduto´).AsVariant



GOSTEI 0
POSTAR