Lookup na mesma tabela

Delphi

21/08/2016

Olá, sou intermediário, utilizo o Delphi Xe 8, o banco Firebird e com a conexão feita pelo Firedac, mas em um dos campo de uma tabela, (Ani_mae) preciso conectar o campo na mesma tabela (Ani_id), mas o delphi retornou o erro \"Circular datalinks are not allowed\", pesquisei mas não achei uma solução para o meu problema!

Agradeço qualquer forma de ajuda!

Segue aqui em baixo a tabela na qual eu falo.

CREATE TABLE ANIMAIS (
    ANI_ID         INTEGER NOT NULL,
    ANI_DATACAD    DATE,
    ANI_BRINCO     INTEGER,
    ANI_DATANASCI  DATE,
    ANI_NOME       NOME,
    ANI_CATE       INTEGER,
    ANI_ESTPROD    INTEGER,
    ANI_ESTDLACT   INTEGER,
    ANI_MAE        INTEGER,
    ANI_PAI        INTEGER,
    ANI_RACA       INTEGER,
    ANI_DIASLACT   INTEGER,
    ANI_NCRIA      INTEGER,
    ANI_PESO       INTEGER,
    ANI_OBS        OBS
);
Luís Maruccio

Luís Maruccio

Curtidas 0

Melhor post

Raimundo Pereira

Raimundo Pereira

21/08/2016

em qual momento ele retorna o erro ,
debug e posta a linha do debug

Qual o procedimento ou componente, está usando para conectar o campo
GOSTEI 3

Mais Respostas

Luís Maruccio

Luís Maruccio

21/08/2016

Ele retorna o erro imediatamente ao eu colocar o campo no listkey. Utilizo o componente de conexão do próprio Firedac, mas para ser mais claro

Campo > DataSource(Nativo) > Table(Firedac) > Conexão(Firedac)
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

21/08/2016

Ele retorna o erro imediatamente ao eu colocar o campo no listkey. Utilizo o componente de conexão do próprio Firedac, mas para ser mais claro

Campo > DataSource(Nativo) > Table(Firedac) > Conexão(Firedac)


Quando você se refere listkey, seriao no caso dbloockup.listkey ?
GOSTEI 0
Luís Maruccio

Luís Maruccio

21/08/2016

Exatamente
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

21/08/2016

Só para registrar, tentei criar a sua tabela, porem tive que realizar duas mudanças

CREATE TABLE ANIMAIS (
ANI_ID INTEGER NOT NULL,
ANI_DATACAD DATE,
ANI_BRINCO INTEGER,
ANI_DATANASCI DATE,
ANI_NOME varchar (40), // Primeira mudança
ANI_CATE INTEGER,
ANI_ESTPROD INTEGER,
ANI_ESTDLACT INTEGER,
ANI_MAE INTEGER,
ANI_PAI INTEGER,
ANI_RACA INTEGER,
ANI_DIASLACT INTEGER,
ANI_NCRIA INTEGER,
ANI_PESO INTEGER,
ANI_OBS varchar (40) // Segunda mudança
);
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

21/08/2016

Pronto vou testar, 5minutos
GOSTEI 0
Luís Maruccio

Luís Maruccio

21/08/2016

Ok tudo bem! Para deixar claro os campos: ANI_CATE, ANI_ESTPROD, ANI_ESTDLACT, ANI_MAE, ANI_PAI e ANI_RACA são foreign keys, mas apenas o ANI_MAE é na mesma tabela e o ANI_ID utilizo código dentro do delphi para o auto incremento
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

21/08/2016

Por motivos técnicos não conseguir postar o resultado aqui.

Mais tenho um canal no youtube

O os detalhes está no comentário do vídeo, não precisa assistir o vídeo, nem se inscrever no canal a não ser que o queira

Link do Video
Os resultados serão o que está abaixo:
Imagem do comando em FORM
Imagem do Resultado no campo destino
GOSTEI 0
Luís Maruccio

Luís Maruccio

21/08/2016

Cara vlw!!! Não utilizei exatamente como descreveu, mas ele abriu a minha mente ao ponto de adapta-lo as minhas necessidades!!!
+1 inscrito!!!! Ah se precisa de alguma ajuda em relação ao YouTube, pode falar cmg, tive uma breve experiência com ele e sei como é complicado o início de um canal!!!
GOSTEI 1
POSTAR