#include #include #include #define size_t long EXEC SQL INCLUDE SQLCA.H; EXEC SQL INCLUDE SQLDA.H; EXEC SQL INCLUDE ORACA.H; void connexion() { VARCHAR uid[50]; char login[20]; char passwd[20]; printf("\n"); strcpy(uid.arr,"mfservaj"); strcat(uid.arr,"/"); strcat(uid.arr,"marif004"); strcat(uid.arr,"@kirov"); uid.len=strlen(uid.arr); EXEC SQL CONNECT :uid; if (sqlca.sqlcode==0) printf(" Connexion réussie avec succès.\n\n"); else { printf ("Problème à la connexion.\n\n"); exit(1); } } void deconnexion(int validation) { if (validation == 1) { EXEC SQL COMMIT WORK RELEASE; } else { EXEC SQL ROLLBACK WORK RELEASE; } printf("\nDéconnexion sans problème.\n"); } void sql_error(char *msg) { char err_msg[128]; long buf_len, msg_len; EXEC SQL WHENEVER SQLERROR CONTINUE; printf("%s\n", msg); buf_len = sizeof (err_msg); sqlglm(err_msg, &buf_len, &msg_len); if (msg_len > buf_len) msg_len = buf_len; printf("%.*s\n", msg_len, err_msg); deconnexion(0); exit(1); } void traitErreur(char *msg) { EXEC SQL WHENEVER SQLERROR CONTINUE; printf("%s\n", msg); deconnexion(0); exit(1); } int main(int argc, char** argv) { EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle error\n"); printf("\n Appel de la fonction connexion"); connexion(); printf("\n Appel de la fonction deconnexion"); EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle error\n"); EXEC SQL CREATE TABLE tessai1( id char(3) constraint tessai1_CP primary key, num number constraint tessai1_num check (num between 100 and 199), unCar char(1) constraint tessai1_car check (unCar in('A','B', 'C')), chaine varchar2(10) constraint tessai1_chaine check (chaine like 'E%'), uneDate date constraint tessai1_date check(to_char(uneDate, 'yyyy') = '2015') ); EXEC SQL COMMIT; deconnexion(1); return(0); }