All pastes #1303605 Raw Edit

marc

public text v1 · immutable
#1303605 ·published 2009-01-08 17:26 UTC
rendered paste body
############
Compilació :
############
gcc  -I/usr/include/postgresql -I /usr/include/postgresql/libpq -lpq agenda.c 

########
codi
########

#include <stdio.h> //agenda personal
#include <stdlib.h>
//#include <stdbool.h>
//#include <stdlib.h>
#include <libpq-fe.h>
#include <unistd.h>
#include <libpq-fs.h>

	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;
}