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
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /***********************************************************************\
 | |
|  *                                                                       *
 | |
|  *   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() ;
 | |
| }
 |