Fórum Usando uma query lookup para várias DBLookupCombo... #329447
15/09/2006
0
Pessoal, é o seguinte: Na minha tabela de produtos tenho vários campos ´boolean´ (varchar(1)). Exemplo:
CODIGO|DESCRICAO|TIPO1|TIPO2|TIPO3
1|´PRODUTO 1´|´T´|´F´|´T´
2|´PRODUTO 2´|´F´|´T´|´T´
3|´PRODUTO 3´|´F´|´F´|´T´
Esse campos ´boolean´ apontam para checkboxes, ou seja, cada produto pode ter um ou mais tipos. Bem, agora tenho uma outra tela onde o usuário tem que escolher produtos. Optei por utilizar DBLookupComboBoxes. Fiz uma Query contendo:
SELECT CODIGO, DESCRICAO FROM PRODUTOS
O problema é que existem 3 DBLookupComboBox. Uma para cada TIPO de produto. E cada uma das DBLookupCombo só devem listar os produtos de um determinado grupo. Ou seja:
DBLookupComboBox1 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO1=´T´;
DBLookupComboBox2 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO2=´T´;
DBLookupComboBox3 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO3=´T´;
Minha dúvida é a seguinte: Tenho obrigatoriamente que ter 3 querys nessa situação? Não teria como fazer com uma só? É que aqui eu simplifiquei. Coloquei apenas 3 grupos, mas na realidade aqui são 12. Alguma idéia?
ps.: Já li em um outro tópico recente que Lookups devem ser evitados em aplicações C/S. No meu caso, se eu tivesse que usar 12 querys, uma filtrando por cada tipo, eu acho que ficaria muito lento. cada uma das 12 querys retornariam pelo menos uns 200 registros cada uma... Então o que fazer? Edit com botão de pesquisa é a melhor solução?
Uso Delphi7+Firebird 1.5+IBX.
t+!
CODIGO|DESCRICAO|TIPO1|TIPO2|TIPO3
1|´PRODUTO 1´|´T´|´F´|´T´
2|´PRODUTO 2´|´F´|´T´|´T´
3|´PRODUTO 3´|´F´|´F´|´T´
Esse campos ´boolean´ apontam para checkboxes, ou seja, cada produto pode ter um ou mais tipos. Bem, agora tenho uma outra tela onde o usuário tem que escolher produtos. Optei por utilizar DBLookupComboBoxes. Fiz uma Query contendo:
SELECT CODIGO, DESCRICAO FROM PRODUTOS
O problema é que existem 3 DBLookupComboBox. Uma para cada TIPO de produto. E cada uma das DBLookupCombo só devem listar os produtos de um determinado grupo. Ou seja:
DBLookupComboBox1 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO1=´T´;
DBLookupComboBox2 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO2=´T´;
DBLookupComboBox3 - SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO3=´T´;
Minha dúvida é a seguinte: Tenho obrigatoriamente que ter 3 querys nessa situação? Não teria como fazer com uma só? É que aqui eu simplifiquei. Coloquei apenas 3 grupos, mas na realidade aqui são 12. Alguma idéia?
ps.: Já li em um outro tópico recente que Lookups devem ser evitados em aplicações C/S. No meu caso, se eu tivesse que usar 12 querys, uma filtrando por cada tipo, eu acho que ficaria muito lento. cada uma das 12 querys retornariam pelo menos uns 200 registros cada uma... Então o que fazer? Edit com botão de pesquisa é a melhor solução?
Uso Delphi7+Firebird 1.5+IBX.
t+!
Delphi32
Curtir tópico
+ 0
Responder
Posts
15/09/2006
Djjunior
Mude sua query para :
SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO=:TIPO
assim que vc selecionar o tipo (um OnExit por ex) coloque
with qry do
begin
close;
ParamByName(´tipo´).AsInteger := Tipos.ItemIndex;
Open;
end;
SELECT CODIGO, DESCRICAO FROM PRODUTOS WHERE TIPO=:TIPO
assim que vc selecionar o tipo (um OnExit por ex) coloque
with qry do
begin
close;
ParamByName(´tipo´).AsInteger := Tipos.ItemIndex;
Open;
end;
Responder
Gostei + 0
15/09/2006
Delphi32
putz.... boa idéia.... nem pensei nisso....
valeu mesmo!!!!
t+!
valeu mesmo!!!!
t+!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)