############ Compilació : ############ gcc -I/usr/include/postgresql -I /usr/include/postgresql/libpq -lpq agenda.c ######## codi ######## #include //agenda personal #include //#include //#include #include #include #include static void exit_nicely(PGconn *conn) { PQfinish(conn); exit(1); } void connecta () { const char *conninfo; PGconn *conn; PGresult *res; int nFields; int i,j; conninfo = "dbname = agenda, user=postgres password=marc"; conn = PQconnectdb(conninfo); if (PQstatus(conn) != CONNECTION_OK) { fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn)); exit_nicely(conn); } res = PQexec(conn, "BEGIN"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { fprintf(stderr, "BEGIN command failed: %s", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); } PQclear(res); /* PGconn *conn; conn=PQsetdbLogin("localhost", NULL, NULL, NULL, "agenda", "postgres", "datsxkul") ; PGconn *PQconnectdb(conn); /* PQsetdbLogin("localhost", // nombre del servidor, NULL agarra por default a localhost NULL, // Puerto, NULL toma el que esta por default (5432) NULL,//Opciones adicionales- por ahora no nos interesa NULL, // Fichero o terminal para la salida "test1",//Nombre de la base de datos "usuario", // Nombre de usuario "password"); // PASSWORD del usuario */ /* if (PQstatus(conn) == CONNECTION_BAD) { printf("\n Error en connexi!! \n"); char *msg =PQerrorMessage(conn); printf("%c",*msg); printf("%s",PQerrorMessage(conn)); } else { printf("Connexi bona!!"); } // return 0;*/ } int valida_data(char data[8], int val) { int valor=val; printf("\nValor de valida_data= %s",data); /* printf("\nboolea val = %s",val); printf("\nboolea valor = %d",valor); printf("\n enter val = %d", val);*/ return 1; } int valida_hora(char hora[4], int valor) { printf("\nValor de valida_hora = %s",hora); printf("\nEnter valor = %d",valor); return 1; } int valida_importancia(char important, int valor) { printf("\nValor de valida_importancia = %c", important); printf("\n Enter valor = %d",valor); while ((important !='s') && (important !='n') ) { printf("Noms s'accepta { s S n N } com a possibles valors\n\t Torna a escriure el valor : "); scanf("%c",&important); if (important !='s' || important!='n') return 0; else printf("Ben introdut ? important = %c",important); } printf("Importncia = %c",important); return 1; } int valida_lloc(char lloc[255], int valor) { printf("\nValor de valida_lloc = %s", lloc); printf("\nEnter valor = %d", valor); return 1; } void afegir() { int entrades=0,con=0; int id=0; char data[8]; //data char lloc[255]; //lloc de cita char hora[4]; //hora de cita char important; //important ? s/n int valord=0, valorl=0, valorh=0, valori=0;; printf("\n\t\tAfegir nota\n\n\n"); printf("Quantes notes vols afegir ?"); scanf("%d", &entrades); while (con < entrades || (!valord && !valorl && !valorh && !valori)) { printf("\nData de la nota (P.EX : 02042008 ddmmaaaa) "); scanf("%s",&data); valord=valida_data(data,valord); printf("\nLloc de la cita : (sense espais)"); scanf("%s",&lloc); valorl=valida_lloc(lloc,valorl); printf("\nHora :(sense espais)"); scanf("%s",&hora); valorh=valida_hora(hora,valorh); printf("\nImportncia (s/n) : "); scanf("%c",&important); valori=valida_importancia(important,valori); printf("\n "); con++; } } void consulta() { printf("\n\t\tConsultar notes\n\n\n"); } void borra() { printf("\n\t\tEliminar nota/es\n\n\n"); int entrades=0,con=0; char data[8]; //data char lloc[255]; //lloc de cita char hora[4]; //hora de cita char important; //important ? s/n int valors=0; printf("valors = %d",valors); printf("Quantes notes vols eliminar ?"); scanf("%d", &entrades); while (con < entrades || !valors) { printf("\nData de la nota (P.EX : 02042008 ddmmaaaa) "); scanf("%s",data); valors=valida_data(data,valors); printf("\nLloc de la cita : (sense espais)"); scanf("%s",lloc); valors=valida_lloc(lloc,valors); printf("\nHora :(sense espais)"); scanf("%s",hora); valors=valida_hora(hora,valors); printf("\nImportncia (s/n) : "); scanf("%s",important); valors=valida_importancia(important,valors); printf("\n "); con++; } } int menu() { char opcio='0'; //falta natejar pantalla while (opcio!='4') { printf("\n\t\tAGENDA PERSONAL\n"); printf("\n"); printf("Escull una opci :\n"); printf("1.-> AFeGIR NOTA\n"); printf("2.-> CONSULTAR NOTeS\n"); printf("3.-> eLIMINAR NOTA\n"); printf("4.-> Connecta\n"); printf("5.-> Sortir\n"); printf("\nOPcI eScOLLIDA :\t"); scanf("%c",&opcio); switch (opcio){ case '1': afegir();break; case '2': consulta();break; case '3': borra();break; case '4': connecta();break; case '5': printf("Sortir de programa \n"); break; } } return opcio; } int main() { int opcio=0; opcio=menu(); return 0; }