1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| #include <stdio.h>
#include <stdlib.h>
#include "libpq-fe.h"
static void exit_nicely(PGconn *conn)
{
PQfinish(conn);
exit(1);
}
int bande()
{
const char *conninfo;
PGconn *conn;
PGresult *res;
int nFields;
int i, j;
char maRequete[250];
int i = 1; int j = 2;
conninfo = "***chaine pour se connecter***";
/* Make a connection to the database */
conn = PQconnectdb(conninfo);
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn));
exit_nicely(conn);
}
/* Start a transaction block */
res = PQexec(conn, "BEGIN");
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
fprintf(stderr, "BEGIN command failed: %s", PQerrorMessage(conn));
PQclear(res);
exit_nicely(conn);
}
/*
* Should PQclear PGresult whenever it is no longer needed to avoid memory
* leaks
*/
PQclear(res);
while(j<=nbPoints)
{ strcpy(maRequete,"***une requete***");
printf("%s \n",maRequete);
res = PQexec(conn,maRequete);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
fprintf(stderr, "SELECT failed: %s \n", PQerrorMessage(conn));
fprintf(stderr, "maRequete= %s \n", maRequete);
PQclear(res);
exit_nicely(conn);
}
PQclear(res);
if (i==1) //Si c'est le premier segment, on crée le premier polygone
{
strcpy(maRequete,"***une requete***");
res = PQexec(conn,maRequete);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
fprintf(stderr, "SELECT failed: %s \n", PQerrorMessage(conn));
fprintf(stderr, "maRequete= %s \n", maRequete);
PQclear(res);
exit_nicely(conn);
}
PQclear(res);
}else // Sinon on fait une union avec le nouveau polygone
{
strcpy(maRequete,"***une requete***");
printf("%s\n",maRequete);
res = PQexec(conn,maRequete);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
fprintf(stderr, "SELECT failed: %s \n", PQerrorMessage(conn));
fprintf(stderr, "maRequete= %s \n", maRequete);
PQclear(res);
exit_nicely(conn);
}
PQclear(res);
}
i++;
j++;
}
/* end the transaction */
res = PQexec(conn, "END");
PQclear(res);
/* close the connection to the database and cleanup */
PQfinish(conn);
return 0;
} |
Partager