Resultado de consulta em tabelas
Faz tempo que não trabalho com Delphi e Access, e estou com um dúvida.
Vou resumir as tabelas:
Existem 3: Proprietários, Endereço e Veículos.
A lógica das relações na funcionalidade do programa seria: O proprietário pode ter apenas um endereço e pode ter mais de um veículo em seu nome. Então as tabelas (vou colocar apenas alguns campos) estão assim:
tabela proprietario
id_prop (chave primária)
id_end (chave estrangeira)
nome
cpf
tabela endereco
id_end (chave primaria)
rua
tabela veiculo
id_veic (chave primaria)
id_prop (chave estrangeira)
marca
Está sendo usando um Datamodule com 3 adoquery: ADOQprop, ADOQend, ADOQveic.
O formulário de consulta tem 1 DBgrid, 1 Button, 1 Edit e 1 DataSource que não está ligado a nada.
O que tem que ser feito é: informar o CPF do proprietário no Edit e retornar no DBgrid os dados deste proprietário, junto com o seu endereço na tabela endereço e os veiculos que possuam o seu id, ou seja tem que retornar campos que tenham relação nas 3 tabelas no mesmo DBgrid.
No Mysql eu faço agora no Access no quebrando a cabeça.
Preciso saber como ficaria a forma de fazer essa consulta e que componentes devo usar, ADOquery, ClientDataSet, DataSource etc...
Se alguém puder dar uma ajuda agradeço.
Vou resumir as tabelas:
Existem 3: Proprietários, Endereço e Veículos.
A lógica das relações na funcionalidade do programa seria: O proprietário pode ter apenas um endereço e pode ter mais de um veículo em seu nome. Então as tabelas (vou colocar apenas alguns campos) estão assim:
tabela proprietario
id_prop (chave primária)
id_end (chave estrangeira)
nome
cpf
tabela endereco
id_end (chave primaria)
rua
tabela veiculo
id_veic (chave primaria)
id_prop (chave estrangeira)
marca
Está sendo usando um Datamodule com 3 adoquery: ADOQprop, ADOQend, ADOQveic.
O formulário de consulta tem 1 DBgrid, 1 Button, 1 Edit e 1 DataSource que não está ligado a nada.
O que tem que ser feito é: informar o CPF do proprietário no Edit e retornar no DBgrid os dados deste proprietário, junto com o seu endereço na tabela endereço e os veiculos que possuam o seu id, ou seja tem que retornar campos que tenham relação nas 3 tabelas no mesmo DBgrid.
No Mysql eu faço agora no Access no quebrando a cabeça.
Preciso saber como ficaria a forma de fazer essa consulta e que componentes devo usar, ADOquery, ClientDataSet, DataSource etc...
Se alguém puder dar uma ajuda agradeço.
Ricardo
Curtidas 0
Respostas
Ricardo
16/01/2014
Bom pessoal, já resolvi o problema.
Bastou esfriar a cabeça e beber uma água. rsrs
Eu coloquei uma Query no fomulário com a cláusula SQL :
select proprietario.campos, endereco.campos , veiculos.campos from proprietario, endereco, veiculos where proprietario.id_end = endereco.id_end and proprietario.id_prop = veiculos.id_prop;
Funcionou tranquilo, basta eu acrescentar todos campos das tabelas que eu preciso.
Bastou esfriar a cabeça e beber uma água. rsrs
Eu coloquei uma Query no fomulário com a cláusula SQL :
select proprietario.campos, endereco.campos , veiculos.campos from proprietario, endereco, veiculos where proprietario.id_end = endereco.id_end and proprietario.id_prop = veiculos.id_prop;
Funcionou tranquilo, basta eu acrescentar todos campos das tabelas que eu preciso.
GOSTEI 0