#include "db.h" int PrintTable() { int err; int i; char *s; struct scanDesc_t *sd; printf("int1 char1 char2\n"); err = ScanBegin("table1",&sd); while (!ScanNext(sd)) { err = GetInteger(sd,"int1",&i); if (err == NULL_VALUE) printf("NULL "); else printf("%d ",i); err = GetString(sd,"char1",&s); if (err == NULL_VALUE) printf("NULL "); else printf("%s ",s); err = GetString(sd,"char2",&s); if (err == NULL_VALUE) printf("NULL "); else printf("%s ",s); printf("\n"); } printf("\n"); err = ScanEnd(sd); return err; } main() { int err; struct scanDesc_t *sd; colRec_t atts[] = {{"int1",INT_COL,0}, {"char1",CHAR_COL,20}, {"char2",CHAR_COL,15}}; valRec_t vals[3]; InitBuffer(); err = CreateTable("table1",3,atts); vals[0].col_name = "int1"; vals[0].u.int_val = 10; vals[0].is_null = 0; vals[1].col_name = "char2"; vals[1].u.char_val = "hello"; vals[1].is_null = 0; InsertRow("table1",2,vals); vals[0].col_name = "int1"; vals[0].u.int_val = 15; vals[1].col_name = "char1"; vals[1].u.char_val = "bye"; InsertRow("table1",2,vals); err = PrintTable(); err = ScanBegin("table1",&sd); err = ScanNext(sd); err = ScanDelete(sd); err = ScanEnd(sd); err = PrintTable(); err = ScanBegin("table1",&sd); err = ScanNext(sd); vals[0].col_name = "int1"; vals[0].u.int_val = 30; vals[0].is_null = 0; vals[1].col_name = "char2"; vals[1].u.char_val = "yikes"; vals[1].is_null = 0; vals[2].col_name = "char1"; vals[2].is_null = 1; err = ScanUpdate(sd,3,vals); err = ScanEnd(sd); err = PrintTable(); }