campo-sirio/cb5/relate1.c
alex a0f5e0898b This commit was generated by cvs2svn to compensate for changes in r975,
which included commits to RCS files with non-trunk default branches.

git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
1995-02-06 15:33:45 +00:00

95 lines
1.8 KiB
C
Executable File

/***********************************************************************\
* *
* RELATE1.C Copyright (C) 1993 Sequiter Software Inc. *
* *
\***********************************************************************/
/* See User's Manual, page 131 */
#include "d4all.h"
#ifdef __TURBOC__
extern unsigned _stklen = 10000;
#endif
CODE4 code_base;
DATA4 *student = NULL,*enrollment = NULL;
RELATE4 *master = NULL,*slave = NULL;
TAG4 *id_tag,*name_tag;
void open_data_files() ;
void set_relation() ;
void print_record() ;
void open_data_files()
{
d4init(&code_base);
student = d4open(&code_base,"STUDENT");
enrollment = d4open(&code_base,"ENROLL");
name_tag = d4tag(student,"NAME");
id_tag = d4tag(enrollment,"STU_ID_TAG");
e4exit_test(&code_base);
}
void set_relation()
{
master = relate4init(student);
if(master == NULL) exit(1);
slave = relate4create_slave(master,enrollment
,"ID",id_tag);
relate4type(slave,relate4scan);
relate4top(master);
}
void print_record()
{
RELATE4 *relation;
DATA4 *data;
FIELD4 *field;
int j;
for(relation = master;relation != NULL
;relate4next(&relation))
{
data = relation->data;
for(j = 1;j <= d4num_fields(data);j++)
printf("%s "
,f4memo_str(d4field_j(data,j)));
}
printf("\n");
}
void list_records()
{
int rc;
for(rc = relate4top(master);rc != r4eof;rc = relate4skip(master,1L))
print_record();
printf("\n");
relate4unlock(master);
}
void main()
{
open_data_files();
set_relation();
list_records();
relate4unlock(master);
relate4free(master,0);
d4close_all(&code_base);
}