diff options
Diffstat (limited to 'reset/reset.c')
-rw-r--r-- | reset/reset.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/reset/reset.c b/reset/reset.c new file mode 100644 index 0000000..b52f5c4 --- /dev/null +++ b/reset/reset.c @@ -0,0 +1,96 @@ +/* + * reset.c + * House of Mozart statistic database reset app (c) 2003 oliver + * + * GNU public license *FIXME* + */ + +#include "reset.h" +#include <stdio.h> +#include <getopt.h> +#include <time.h> +#include <libpq-fe.h> + +int main(int argc, char *argv[]) { + int i; + int options; + int day; + int month; + int year; + PGconn *conn; + char SQL_query[512]; + PGresult *res; + + day = month = year = 0; + + conn = PQsetdbLogin(PGHOST, PGPORT, PGOPTIONS, PGTTY, DBNAME, LOGIN, PWD); + + for(;-1 != (options = getopt(argc, argv, "hdmya"));) { + if('h' == options) { + printf(LONGHELP); + } + if('d' == options) { + day = 23; + } + if('m' == options) { + month = 31; + } + if('y' == options) { + year = 1; + } + if('a' == options) { + day = 23; + month = 31; + } + } + + if(CONNECTION_BAD == PQstatus(conn)) { + fprintf(stderr, "Connection to database '%s' failed.\n %s", DBNAME, PQerrorMessage(conn)); + PQfinish(conn); + return 1; + } + + if(0 < day) { + for(i = 0; i <= day; i++) { + sprintf(SQL_query, "UPDATE counter_day SET \"%0.2d\" = 0;", i); + res = PQexec(conn, SQL_query); + + if((NULL == res) || (PGRES_COMMAND_OK != PQresultStatus(res))) { + printf("Unable to execute query: %s\n %s\n", SQL_query, PQerrorMessage(conn)); + PQclear(res); + PQfinish(conn); + return 1; + } + PQclear(res); + } + } + if(0 < month) { + for(i = 1; i <= month; i++) { + sprintf(SQL_query, "UPDATE counter_month SET \"%0.2d\" = 0;", i); + res = PQexec(conn, SQL_query); + + if((NULL == res) || (PGRES_COMMAND_OK != PQresultStatus(res))) { + printf("Unable to execute query: %s\n %s\n", SQL_query, PQerrorMessage(conn)); + PQclear(res); + PQfinish(conn); + return 1; + } + PQclear(res); + } + } + if(1 == year) { + sprintf(SQL_query, "INSERT INTO counter_year VALUES (counter_year.year +1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"); + res = PQexec(conn, SQL_query); + + if((NULL == res) || (PGRES_COMMAND_OK != PQresultStatus(res))) { + printf("Unable to execute query: %s\n %s\n", SQL_query, PQerrorMessage(conn)); + PQclear(res); + PQfinish(conn); + return 1; + } + PQclear(res); + } + PQfinish(conn); + + return 0; +} |