Relacionamento Delphi

Delphi

29/04/2003

como faço pra criar um relacionamento de um pra muitos.
por ex.
quero criar uma tabela aonde
um reclamante possui muitas empresas reclamadas.


Carlaprogramadora

Carlaprogramadora

Curtidas 0

Respostas

Schumacher

Schumacher

29/04/2003

Carla,

Suponhamos que você quer criar uma tabela de nome RECLAMANTES e outra de EMPRECLAMADAS.
As estruturas das tabelas(Campos) serão as seguintes:
Obs: Os campos com ´*´ serão as chaves primárias.


RECLAMANTE
--->RECCodigo *
--->RECNome

EMPRECLAMADAS
--->RECCodigo *
--->EMPCodigo *
--->EMPNome

Verifique que a tabela EMPRECLAMADAS possui um campo de mesmo nome da tabela RECLAMANTE. Isto é uma chave estrangeira, que permitirá uma ligação entre estas duas tabelas. Após ter dados cadastrados nestas tabelas poderia realizar um consulta SQL, por exemplo, que retorne todas as empresas reclamadas de um determinado Reclamante:

SELECT * FROM EMPRECLAMANTE
WHERE RECCodigo = ´00001´

Este script retornaria todos os registros do RECLAMANTE de código ´00001´.

Para implementar isto no Delphi, em um formulário de cadastros, por exemplo, você teria que ter dois componetes TABLES em que um seria identificado como principal (RECLAMANTE em nosso exemplo) e o segundo o dependente do principal (O EMPRECLAMANTE), para interligá-los você utilizaria as propriedades MasterSource da tabela dependente, setando os campos RECCodigo da mesma para a tabela principal.

Espero ter lhe ajudado, ou no mínimo ter lhe dado uma idéia.


GOSTEI 0
Rodney

Rodney

29/04/2003

existe duas naneiras de se fazer isto.
1º com table:
click na table que e a de detalhe selecione a sua propriedade mastersourcer e selecione o dataset mestre.
Depois click na propriedade masterfields no botão pontinhado de um click
vai a parecer um outra caixa de dialogo escolha a chave estrageira da tabela detalhes depois escolha a chave primaria da tabela mestre click no
botão ADD E OK O RELACIONAMENTO ESTA MONTADO.


GOSTEI 0
Schumacher

Schumacher

29/04/2003

Carla,

Suponhamos que você quer criar uma tabela de nome RECLAMANTES e outra de EMPRECLAMADAS.
As estruturas das tabelas(Campos) serão as seguintes:
Obs: Os campos com ´*´ serão as chaves primárias.


RECLAMANTE
--->RECCodigo *
--->RECNome

EMPRECLAMADAS
--->RECCodigo *
--->EMPCodigo *
--->EMPNome

Verifique que a tabela EMPRECLAMADAS possui um campo de mesmo nome da tabela RECLAMANTE. Isto é uma chave estrangeira, que permitirá uma ligação entre estas duas tabelas. Após ter dados cadastrados nestas tabelas poderia realizar um consulta SQL, por exemplo, que retorne todas as empresas reclamadas de um determinado Reclamante:

SELECT * FROM EMPRECLAMANTE
WHERE RECCodigo = ´00001´

Este script retornaria todos os registros do RECLAMANTE de código ´00001´.

Para implementar isto no Delphi, em um formulário de cadastros, por exemplo, você teria que ter dois componetes TABLES em que um seria identificado como principal (RECLAMANTE em nosso exemplo) e o segundo o dependente do principal (O EMPRECLAMANTE), para interligá-los você utilizaria as propriedades MasterSource da tabela dependente, setando os campos RECCodigo da mesma para a tabela principal.

Espero ter lhe ajudado, ou no mínimo ter lhe dado uma idéia.


GOSTEI 0
Carlaprogramadora

Carlaprogramadora

29/04/2003

muito obrigado por responder
agora tenho outra pergunta.
como faço para criar um relacionamento deste tipo.
tabela reclamacao ligada em tabela reclamante e tabela empreclamadas.
aonde uma tabela reclamacao contera um reclamante e muitas empreclamadas.
como faço isso?


GOSTEI 0
Everton

Everton

29/04/2003

Carla, acho que você deveria ter as seguintes tabelas:
- EMPRESA, RECLAMANTE e RECLAMACOES, com os seguintes campos:

EMPRESA
- EMP_Codigo *
- EMP_Nome

RECLAMANTE
- REC_Codigo *
- REC_Nome

RECLAMACOES
- REM_Codigo *
- REC_Codigo // Código do Reclamante
- EMP_Codigo // Código da Empresa Reclamada
- REM_Reclamacao


GOSTEI 0
Carlaprogramadora

Carlaprogramadora

29/04/2003

mas eu queria fazer uma tabela reclamacoes aonde o reclamante estaria associado a varias reclamadas e nao apenas uma.
por ex
reclamacao 1235
reclamante jose antonio
reclamadas ajax,americanas,wall mart.

desta forma.


GOSTEI 0
POSTAR