Fazer um LookUp Receber Dados de Acordo com Outro LkUp
Olá pessoal.. estou com outra pequena dúvida..
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:
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
Curtidas 0
Respostas
Aersoftware
04/08/2004
Eu manipulo o Sql pelo ClientDataSet ou pelo DataSet q estou usando no lugar das Tables?
Allan Elias Ramos :cry:
Allan Elias Ramos :cry:
GOSTEI 0
Paulo_amorim
04/08/2004
Olá
Voce pode fazer isso atraves de uma query, usando TSimpleDataSet ou algo do genero...
Aí vc faz uma query filtrando por editora
Coloca no evento do LookUp da editora pra abrir essa query, passando a editora escolhida como parametro
Espero que ajude
Até+
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é+
GOSTEI 0
Aersoftware
04/08/2004
Mas como eu começo? lembro q no acess eu fazia mais ou menos assim:
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 :?:
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 :?:
GOSTEI 0
Aersoftware
04/08/2004
Outra dúvida..
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:
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:
GOSTEI 0
Paulo_amorim
04/08/2004
Olá
Você pode fazer uma query pra selecionar Editoras
Vc poe uma outra query para selecionar universos
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é+
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é+
GOSTEI 0
Aersoftware
04/08/2004
Paulo, eu fiz o seguinte.. no evento OnCloseUp do LookUp de Editoras eu botei o seguinte;
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:
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:
GOSTEI 0
Paulo_amorim
04/08/2004
Olá
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é+
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é+
GOSTEI 0
Aersoftware
04/08/2004
Olá
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é+
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:
GOSTEI 0