/* Primer 10: Zadatak se sastoji iz tri dela: 1) Sa standardnog ulaza se unose podaci: id_predmeta, sifra, naziv, broj_semestra i bodovi, pa se ti podaci unose u tabelu predmet. Nakon cega se select into naredbom proverava da li podaci dobro uneti i ispisuju se. 2) Vrsi azuriranje podataka za uneseni predmet, tako sto broj bodova duplo povecava, nakon cega se izlistavaju podaci. 3) Uneseni predmet se brise iz baze. Primer ilustruje koriscenje naredbi INSERT, UPDATE i DELETE. */ #include #include #include EXEC SQL INCLUDE SQLCA; int is_error(char* str) { if(SQLCODE<0) { printf("Greska %ld: %s\n", SQLCODE, str); return 1; } return 0; } #define CHECKERR(str) if(is_error(str)) exit(1); EXEC SQL BEGIN DECLARE SECTION; long id_predmeta; char sifra[21]; char naziv[201]; short broj_semestra; short bodovi; EXEC SQL END DECLARE SECTION; main() { EXEC SQL CONNECT TO vstud user student using abcdef; CHECKERR("Konekcija na bazu"); printf("Identifikator predmeta:"); scanf("%ld", &id_predmeta); printf("Sifra predmeta:"); scanf("%s", sifra); printf("Naziv predmeta:"); scanf("%s", naziv); printf("Semestara slusanja predmeta:"); scanf("%hd", &broj_semestra); printf("Bodovi predmeta:"); scanf("%hd", &bodovi); EXEC SQL INSERT INTO PREDMET VALUES (:id_predmeta, :sifra, :naziv, :broj_semestra, :bodovi); CHECKERR("Unos podataka o predmetu"); EXEC SQL SELECT id_predmeta, sifra, naziv, broj_semestra, bodovi INTO :id_predmeta, :sifra, :naziv, :broj_semestra, :bodovi FROM PREDMET WHERE id_predmeta=:id_predmeta; CHECKERR("Izlistavanje podataka"); printf("\nID:%ld SIFRA:%s NAZIV:%s SEMSLUS:%sh BODOVI:%sh\n", id_predmeta, sifra, naziv, broj_semestra, bodovi); EXEC SQL UPDATE PREDMET SET BODOVI=BODOVI*2 WHERE id_predmeta=:id_predmeta; CHECKERR("Azuriranje podataka o predmetu"); EXEC SQL SELECT id_predmeta, sifra, naziv, broj_semestra, bodovi INTO :id_predmeta, :sifra, :naziv, :broj_semestra, :bodovi FROM PREDMET WHERE id_predmeta=:id_predmeta; CHECKERR("Izlistavanje podataka"); printf("\nID:%ld SIFRA:%s NAZIV:%s SEMSLUS:%sh BODOVI:%sh\n", id_predmeta, sifra, naziv, broj_semestra, bodovi); EXEC SQL DELETE FROM PREDMET WHERE id_predmeta=:id_predmeta; CHECKERR("Brisanje podataka o predmetu"); EXEC SQL CONNECT RESET; CHECKERR("Diskonekcija sa baze"); }