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