Fórum Como pesquisar por vários campos #281072
11/05/2005
0
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:
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
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
Curtir tópico
+ 0
Responder
Posts
11/05/2005
Steve_narancic
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
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
Responder
Gostei + 0
11/05/2005
Raserafim
esperimente troca de AsString para AsVariant
qProduto.ParamByName(´ParamProduto´).AsVariant
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)