Função Recursiva

Delphi

03/05/2004

Prezados Amigos...

Eu tenho duas tabelas no meu arquivo:
[u:e64d842c79]Exames[/u:e64d842c79]
EXAME DESCRICAO
1 RAIO X
2 RAIO X PE
3 RAIO x PERNA
4 RAIO X DEDOS

[u:e64d842c79]Exames que Compões o Exame[/u:e64d842c79]
EXAME COMPONENTE
1 2
1 3
2 4

Preciso fazer uma função recursiva para imprimir esta tabela, e que o resultado seja o seguinte:
1 RAIO X
2 RAIO X PE
4 RAIO X DEDOS
3 RAIO X PERNA

Será que alguém pode me ajudar com esta função??

Grata

Mariana


Mariana

Mariana

Curtidas 0

Respostas

Rafael Heise

Rafael Heise

03/05/2004

procedure RetornaExames(AExame: integer; AStringList: TStringList);
var
  query: TQuery;
begin
  { cria a query e conecta no banco de dados }    
  { considerando que a tabela de EXAMES seja EXA }
  { e a tabela de Exames que Compões o Exame EXACOMP }
  { e os campos sejam CDEXAME, CDEXACOMP }
  query.SQL.Text := ´SELECT * FROM EXAME ´ +
    ´ WHERE CDEXAME = ´ + IntToStr(AExame);
  query.Open;  
  { Aqui retorna somente 1 Exame, então vou adiciona a minha lista }
  AStringList.Add(query.FieldByName(´DESCRICAO´).AsString);
  query.Close; 
  query.SQL.Clear;
  { Depois então eu busco todos os examente deste exame }
  query.SQL.Text := ´SELECT * FRom EXACOMP WHERE ´ +  
    ´ CDEXAME = ´ + IntToStr(AExame);
  query.Open;
  while not query.eof do
  begin
    RetornaExames(query.FieldByName(´CDEXACOMP´).AsInteger,
      AStringList);   
  end;
end;


se você já tem as informações do primeiro exame, você pode mudar essa função pra buscar somente os exames do exame que você passar, então, basta tirar a primeira parte do programa...


GOSTEI 0
POSTAR