83 lines
1.5 KiB
C
83 lines
1.5 KiB
C
|
/***********************************************************************\
|
||
|
* *
|
||
|
* RELATE2.C Copyright (C) 1993 Sequiter Software Inc. *
|
||
|
* *
|
||
|
\***********************************************************************/
|
||
|
/* See User's Manual, page 139 */
|
||
|
|
||
|
#include "d4all.h"
|
||
|
|
||
|
#ifdef __TURBOC__
|
||
|
extern unsigned _stklen = 10000;
|
||
|
#endif
|
||
|
|
||
|
CODE4 code_base;
|
||
|
DATA4 *student = NULL;
|
||
|
|
||
|
void open_data_files() ;
|
||
|
|
||
|
void open_data_files()
|
||
|
{
|
||
|
student = d4open(&code_base,"STUDENT");
|
||
|
|
||
|
e4exit_test(&code_base);
|
||
|
}
|
||
|
|
||
|
void print_record(DATA4 *data_file)
|
||
|
{
|
||
|
int j;
|
||
|
|
||
|
for(j=1;j<=d4num_fields(data_file);j++)
|
||
|
printf("%s "
|
||
|
,f4memo_str(d4field_j(data_file,j)));
|
||
|
|
||
|
printf("\n");
|
||
|
}
|
||
|
|
||
|
void query(DATA4 *data_file
|
||
|
,char *expr
|
||
|
,char *order)
|
||
|
{
|
||
|
RELATE4 *relation = NULL;
|
||
|
int rc;
|
||
|
|
||
|
relation = relate4init(data_file);
|
||
|
if(relation == NULL) exit(1);
|
||
|
|
||
|
|
||
|
relate4query_set(relation,expr);
|
||
|
relate4sort_set(relation,order);
|
||
|
|
||
|
|
||
|
for(rc = relate4top(relation);rc != r4eof
|
||
|
;rc = relate4skip(relation,1L))
|
||
|
print_record(data_file);
|
||
|
|
||
|
printf("\n");
|
||
|
|
||
|
relate4unlock(relation);
|
||
|
relate4free(relation,0);
|
||
|
|
||
|
}
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
int rc,num_fields,j;
|
||
|
|
||
|
d4init(&code_base);
|
||
|
open_data_files();
|
||
|
|
||
|
query(student
|
||
|
,"AGE > 30"
|
||
|
,"");
|
||
|
|
||
|
query(student
|
||
|
,"UPPER(L_NAME) = 'MILLER'"
|
||
|
,"L_NAME + F_NAME");
|
||
|
|
||
|
d4close_all(&code_base);
|
||
|
d4init_undo(&code_base);
|
||
|
mem4reset() ;
|
||
|
exit(0) ;
|
||
|
}
|