Fórum Mestre/Detalhe com DBExpress (FB) precisa atualizar?? #284005

07/06/2005

0

Olá

[b:7c129b0255]Estou convertendo sistemas do paradoidox e estou com algumas dificuldades com o DBExpress[/b:7c129b0255]

Tenho uma Tabela Mestre
ligada com SQLQUery - DataSetProvider - ClientDataSet - DataSource
(neste caso seleciono tudo)

Na Tabela detalhe (dentro do DBgrid)
Tenho a mesma coisa com um
WHERE no CAMPO :=CAMPO

SELECT A.COD_ANIMAL, A.APELIDO_ANIMAL, A.NOME_ANIMAL, A.COD_CLI, A.ESPECIE, A.RACA, A.COR, A.PECULIARIDADES, A.DATANASC, A.TEMPERAMENTO, A.DESCR_TEMP FROM ANIMAIS A WHERE A.COD_CLI =:COD_CLI


:cry: [u:7c129b0255]O DataSource aponta para o CDS do Master ou para o SQLQUery o
fato é que quando mostro o primeiro registro da tabela mestre aparece o grid com os dados ok, mas quando uso um skip e vou para o próximo registro do mestre nunca mais muda os dados do dbgrid do detalhe...[/u:7c129b0255]

[b:7c129b0255]A minha pergunta é sempre no afterscroll preciso ligar/desligar o a Tabela Detalhe??[/b:7c129b0255]

Agradeço qualquer ajuda/opinião... :roll:


Oswaldosaraujo

Oswaldosaraujo

Responder

Posts

08/06/2005

Mariocanel

Olá, para vc fazer a ligacao deve possuir um datasource que ligue a query mestre com o client detalhe atraves do da propriedade datasetfield, criando assim um campo aninhado e de posse disso nao precisará mais fazer nada, pois, tudo que é preciso o dbexpress fará a ligação existente entre eles.
Outro detalhe é que o parametro que lifa as tabelas tem que ser o mesmo.
Não precisando ligar o afterscroll.
No teu select para aumentar o desempenho era só fazer o select direto sem precisar das iniciais de atribuição da tabela, pois, vs só usa uma.
Com respeito a atualização utilize o refresh para ambas tabelas.
Espero ter ajudado


Responder

Gostei + 0

08/06/2005

Lilidiou

Olá Araujo,

Tenho em um sistema da empresa uma situação semelhante. Procedo da seguinte forma: no momento em que o usuário navega para um outro registro da tabela principal, utilizo o código para acessar o registro da tabela detalhe. Observe que toda vez que o usuário muda de registro na principal, um novo comando select é enviado ao banco buscando os registros referentes à tabela secundária. Na minha aplicação tenho um DBGrid1 para os registros da tabela principal e um DBGrid2 para os registrros da tabela detalhe. É apenas uma alternativa. Ressalto que a alternativa dada pelo colega ´mariocanel´ é um pouco mais interessante. Já a utilizei em aplicações.

Abraços


Responder

Gostei + 0

08/06/2005

Oswaldosaraujo

Ola Amigos

Obrigado e ficou algumas questões aqui :D

[quote=´mariocanel´
No teu select para aumentar o desempenho era só fazer o select direto sem precisar das iniciais de atribuição da tabela, pois, vs só usa uma.


Não entendi... :?:

[quote=´mariocanel´
Com respeito a atualização utilize o refresh para ambas tabelas.


:?: Nos ClientDataSets ? na SQLQuery ? Onde é o melhor evento para isto?
:?:

Olá Araujo, Na minha aplicação tenho um DBGrid1 para os registros da tabela principal e um DBGrid2 para os registrros da tabela detalhe.


Foi isso que eu tentei, mas não funcionou, mas eu gostaria de entender o porque.... :!:

E muito obrigado por suas respostas (sem atualizar nada funcionou perfeito com a tabela aninhada, apanhei um pouco para descobrir, mas até que é fácil)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar