mestre/detale e detalhe do detalhe
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 :?:
Usando dbexpress + firebird e nested Datasets
Alguém sabe como fazer e possa me ajudar
Agradeço antecipadamente :?:
Sergiowilson.sp
Curtidas 0
Respostas
Bruno Belchior
02/12/2005
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...
GOSTEI 0
Emerson Nascimento
02/12/2005
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
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
GOSTEI 0
Emerson Nascimento
02/12/2005
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
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
GOSTEI 0