P8000/WEGA/contrib/ingres/dbs/demo/amx/04.x

39 lines
738 B
Plaintext

/*
** Es sollen alle Angestellten und alle ihre Leiter recherchiert werden.
*/
## shared Dt
## i2 leiter;
## char name[21];
## char *name_arg;
amx(argc, argv)
int argc;
char **argv;
{
name_arg = (argc == 1)? "*": argv[1];
## open Personal
## retrieve Personal $Name == name_arg (name = $Name, leiter = $Leiter)
## {
suche_leiter();
## }
## close Personal
fflush(stdout);
}
/*
** `suche_leiter' sucht rekursiv nach dem Leiter eines Angestellten,
** bis dieser der Direktor ist, das heisst, der Angestellte als
** Leiternummer eine `0' hat.
*/
suche_leiter()
{
printf("%-20s ", name);
if (leiter == 0)
{
putchar('\n');
return;
}
## retrieve Personal $Num == leiter (name = $Name, leiter = $Leiter)
## {
suche_leiter();
## }
}