Fazer um LookUp Receber Dados de Acordo com Outro LkUp
04/08/2004
0
Eu tenho uma aplicação com banco em FB 1.5 e ligando no Delphi 7 pelo DbExpress..
Tenho uma tabela de Personagens, outra de Universo do Personagem e outra da Editora do Personagem.
Bom, no cadastro de personagem eu vou colocar o universo ao qual ele pertence e a editora.. nao sao campos obrigatórios, mas coloquei pra fazer essa ordenação da dúvida.. q é a seguinte..
Coloquei um LookUp q me lista todas editoras cadastradas.. liguei direto a tabela de editora, pq se eu ligasse a tabela de personagens ele sempre bagunçava o registro, e como só kero ordernar, liguei pela 1ª tabela..
Aí é o seguinte.. quando eu selecionar a editora, eu kero q outro LookUp me liste todos Universos cadastrados q tenham o código da editora seleciona no campo de Chave Estrangeira.. e quando eu selecionar o universo, quero q ele me liste todos os persongens q tenha o código dakele universo na Chave Estrangeira.. como eu dei um tempo no programa antes, agora nao me lembro direito como faço isso.. e antes eu tava trabalhando em access e fazia isso no componente SQL.. agora em qual componente faço? como faço? grato...
Allan Elias Ramos :roll:
Aersoftware
Posts
06/08/2004
Aersoftware
Allan Elias Ramos :cry:
06/08/2004
Paulo_amorim
Voce pode fazer isso atraves de uma query, usando TSimpleDataSet ou algo do genero...
Aí vc faz uma query filtrando por editora
SELECT * FROM universo WHERE editora = :p1
Coloca no evento do LookUp da editora pra abrir essa query, passando a editora escolhida como parametro
dlcEditora.KeyValue;
Espero que ajude
Até+
06/08/2004
Aersoftware
With DmDados.SqlTal do
begin
close;
Sql.Clear;
Sql.Add(´Instruções´);
end;
Tinha mais coisas, mas basicamente era isso.. nao sei se da pra fazer assim com o dbExpress...
Allan Elias Ramos :?:
07/08/2004
Aersoftware
Vi q, usando uma Query do dbExpress, da pra fazer como eu fazia antes, mas eu ja comecei usando um TSQLDataSet ... é por isso q estou com dúvida.. qual o melhor pra usar? o SQLQuery ou o SQLDataSet? e no caso, como eu faria essa pesquisa pelo SQLDataSet?
Basicamente é o seguinte, quando me abre o form, ele ja me lista as Editoras e Universos.. mas queria q, quando fosse selecionado uma Editora, ele me listasse só os Universos dakela Editora..
Allan Elias Ramos :wink:
09/08/2004
Paulo_amorim
Você pode fazer uma query pra selecionar Editoras
SELECT cod, nome FROM editoras
Vc poe uma outra query para selecionar universos
SELECT * FROM universo WHERE editora = :p1
E a abre no evento OnCLick do combo de editoras
with sqlSelUniverso do
begin
Close;
{coloca a SQL acima aqui }
ParamByName( ´p1´).Value := dlcEditora.KeyValue;
Open;
end;
Daí ele deve abrir o combo de universos daquela editora
Sobre qual componente usar, não sei qual o melhor, mas em principio qualquer DataSet funciona...
Espero que ajude
Até+
09/08/2004
Aersoftware
if LkUpEditora.Text <> ´´ Then begin DmDados.ClientUniPersonagem.Close; DmDados.SqlUniPersonagem.Close; DmDados.SqlUniPersonagem.CommandText := ´Select * From TbUniversoPersonagem Where FkCod_EditOriginal =´+IntToStr(LkUpEditora.KeyValue)+´Order By Nome´; DmDados.SqlUniPersonagem.Open; DmDados.ClientUniPersonagem.Open; end;
Aí funcionou blz... só gostaria de saber se tem algum problema em fechar o ClientDataSet e abrir novamente como fiz ou nao?
E outra coisa.. depois q eu boto esse código, eu tenho q botar outro pra ´inverter´ o Sql pro orignal, q é listar Todos Dados em Orderm Alfabética, quando entro no form de ediçao de Universos.. é assim mesmo tb??
Allan Elias Ramos :roll:
10/08/2004
Paulo_amorim
O SqlUniPersonagem está ligado ao ClietnDataSet de personagem?
Se sim, vc soh precisa abrir um deles
Mas em principio nao vejo problema algum
Por que vc precisa de outro dataset pra mostrar por ordem alfabética? esse não pode ser esse ae?
Até+
10/08/2004
Aersoftware
Não, na verdade tem uma ligação pra cada tabela.. um SqlDataSet, Provider, ClientDataSet e Data Source.. e cada um deles tem uma função dentro do seu formulário específico..
Só q, pra listar as editoras, eu ligo o LookUp diretamente no Client de Editoras.. o de Universo tb.. Então, nao hora de entrar no form de Universos, eu preciso modificar o sql dele, q eu modifiquei na hora de listar nesse form específico.. :wink:
Allan Elias Ramos :roll:
Clique aqui para fazer login e interagir na Comunidade :)