/***********************************************************************\ * * * RELATE4.C Copyright (C) 1993 Sequiter Software Inc. * * * \***********************************************************************/ /* See User's Manual, page 148 */ #include "d4all.h" #ifdef __TURBOC__ extern unsigned _stklen = 10000; #endif CODE4 code_base; DATA4 *student = NULL,*enrolment = NULL; FIELD4 *id,*f_name,*l_name,*age,*c_code; 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"); enrolment = d4open(&code_base,"ENROLL"); id = d4field(student,"ID"); f_name = d4field(student,"F_NAME"); l_name = d4field(student,"L_NAME"); age = d4field(student,"AGE"); c_code = d4field(enrolment,"C_CODE_TAG"); name_tag = d4tag(student,"NAME"); id_tag = d4tag(enrolment,"STU_ID_TAG"); e4exit_test(&code_base); } void set_relation() { master = relate4init(student); slave = relate4create_slave(master, enrolment, "ID", id_tag); } void seek(DATA4 *data_file, TAG4 *tag, RELATE4 *relation, char *key) { TAG4 *old_tag; old_tag = d4tag_selected(data_file); d4tag_select(data_file,tag); d4seek(data_file,key); relate4do(relation); d4tag_select(data_file,old_tag); } void print_record() { printf("%15s ",f4str(f_name)); printf("%15s ",f4str(l_name)); printf("%6s ",f4str(id)); printf("%2s ",f4str(age)); printf("%7s\n",f4str(c_code)); } void main() { open_data_files(); set_relation(); seek(student ,name_tag ,master ,"Tyler Harvey "); print_record(); seek(student ,name_tag ,master,"Miller Albert "); print_record(); relate4unlock(master); relate4free(master,0); d4close_all(&code_base); d4init_undo(&code_base); mem4reset() ; }