filtrar dblookup com ibquery
Estou usando firebird e delphi 7 e preciso fazer um filtro em tres dblookups, um de estado outro de cidade e o ultimo de bairro.
Como faco atraves de uma query, estou utilizando os componentes ibquery, ibtransaction, ibdataset todos da paleta interbase do delphi 7.
Esses campos sao chave estrangeira no form, isto e, sao registros de outras tabelas (tabestado, tabcidade e tabbairro). Estou usando a seguinte logica:
tab_Cadastro(cod_cadastro, cod_estado, cod_cidade, cod_bairro, ...)
tab_Estado(cod_estado,nome,....)
tab_Cidade(cod_estado, cod_cidade, nome, ...)
tab_Bairro(cod_cidade, cod_bairro, nome, .....).
obs: os que estao sublinhados sao chaves_estrageira e os que estao em negrito sao chaves_primaria.
Aguardo ajuda.Obrigado.
Como fiz ate agora:
Adicionei no datamodule (DTM) uma ibQUERY, liguei ao banco de dados, na propriedade SQL da ibQUERY coloquei o seguinte codigo:
Código:
select *
from TABESTADO TABCIDADE
where CODIGOESTADO = CODIGOCIDADE
Order By NOMECIDADE
Dei um duplo clique na ibQUERY e adicionei todos os campos da tabela cidade,
que é a tabela que vai realizar o filtro.
Na propriedade ONCLOSEUP do dblookupestado coloquei o seguinte codigo:
Código:
procedure TFormCadastro.DBLKselecESTADOCloseUp(Sender: TObject);
begin
DTM.IBQRYbuscaCidade.Close;
DTM.IBQRYbuscaCidade.ParamByName('NOMECIDADE').Value:=DBLKselecCIDADE.Text;
DTM.IBQRYbuscaCidade.Close;
end;
Quando compilo o programa, depois que seleciono o estado ele gera um erro dizendo algo assim:
Código:
ibQUERYbuscacidade: Parameter 'NOMECIDADE' not found.
Aguardo ajuda.
Discussão (2)
Carregando comentários...