mestre/detale e detalhe do detalhe

02/12/2005

0

Estou precisando urgentemente fazer um relação mestre com um detalhe e um detalhe do detalhe (Bancos -> Agencias -> Contas Correntes)
Usando dbexpress + firebird e nested Datasets

Alguém sabe como fazer e possa me ajudar

Agradeço antecipadamente :?:


Sergiowilson.sp

Sergiowilson.sp

Responder

Posts

02/12/2005

Bruno Belchior

Não consegui fazer isso via Nested Table, então fiz via SQL e parâmetro mesmo, fazendo uma juncão com a TabelaMestre e a Detalhe-Mestre...


Responder

02/12/2005

Emerson Nascimento

vamos ver se vai dar pra entender...

você faz com o detalhe do detalhe, da mesma forma que fez do mestre para o detalhe.

assim:

[dataset_mestre]
commandtext = select * from tabelaprincipal

[datasource_mestre]
dataset = dataset_mestre

[dataset_detalhe]
command = select * from tabela_detalhe where campo_detalhe = :campo_mestre
datasource = datasource_mestre

[datasource_detalhe] <- só é necessário porque teremos outro ´nível´
dataset = dataset_detalhe

[dataset_detalhe_do_detalhe]
command = select * from tabela_detalhe_do_detalhe where campo_detalhe_do_detalhe = :campo_detalhe
datasource = datasource_detalhe


Responder

02/12/2005

Emerson Nascimento

sendo um pouco mais específico:

imaginando a seguinte estrutura:
[bancos]
id_banco
banco
nome

[agencia]
id_Agencia
id_banco
agencia
endereco

[conta]
id_conta
id_agencia
numerodaconta

poderíamos ter:
[dataset_bancos]
commandtext = select * from bancos

[datasource_bancos]
dataset = dataset_bancos

[dataset_agencias]
command = select * from agencias where (1)id_banco = (2):id_banco
datasource = datasource_bancos

[datasource_agencia] <- só é necessário porque teremos outro ´nível´
dataset = dataset_agencias

[dataset_contas]
command = select * from contas where (3)id_agencia = (4):id_agencia
datasource = datasource_agencias

(1) o campo de ligação entre a tabela agencias e a tabela bancos
(2) esse parâmetro deve ter o mesmo nome do campo de ligação na tabela bancos
(3) o campo de ligação entre a tabela contas e a tabela agências
(4) esse parâmetro deve ter o mesmo nome do campo de ligação na tabela agencias

note que nas condições de relacionamento pode haver mais de um campo. por exemplo:
[bancos]
banco
nome

[agencia]
agencia
banco
endereco

[conta]
conta
agencia
banco
numerodaconta

[dataset_bancos]
commandtext = select * from bancos

[datasource_bancos]
dataset = dataset_bancos

[dataset_agencias]
command = select * from agencias where banco = :banco
datasource = datasource_bancos

[datasource_agencia] <- só é necessário porque teremos outro ´nível´
dataset = dataset_agencias

[dataset_contas]
command = select * from contas where banco = :banco and agencia = :agencia
datasource = datasource_agencias


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar