Fórum Função Recursiva #229559
03/05/2004
0
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
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
Curtir tópico
+ 0
Responder
Posts
03/05/2004
Rafael Heise
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...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)