From fa99cbfb14d6750f9896791193a47e85176107f7 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 31 Aug 2000 16:33:40 +0000 Subject: [PATCH] *** empty log message *** --- allParam/file/fileParam.c | 17 +++----- allParam/psql/psqlParam.c | 90 ++++++++++++++++++++------------------- allParam/tcl/tclParam.c | 11 ++--- 3 files changed, 56 insertions(+), 62 deletions(-) diff --git a/allParam/file/fileParam.c b/allParam/file/fileParam.c index 77b542a..114e5dc 100644 --- a/allParam/file/fileParam.c +++ b/allParam/file/fileParam.c @@ -80,24 +80,19 @@ int Param_getInt(const Param *my, const char *name, const char *idx, int *row, u int Param_getString(const Param *my, const char *name, const char *idx, int *row, char *val) { - char lname[strlen(name) + 1]; - char lidx[strlen(idx) + 1]; int i; int n; + char lname[strlen(name) + 1]; + char lidx[strlen(idx) + 1]; - i = 0; - while (name[i] != '\0') { + for(i = 0 ; i <=strlen(name) ; i++) { lname[i] = tolower(name[i]); - i++; } - lname[i] = '\0'; - i = 0; - while (idx[i] != '\0') { + for(i = 0 ; i <=strlen(idx) ; i++) { lidx[i] = tolower(idx[i]); - i++; } - lidx[i] = '\0'; - + + n = Param_getParamNumber(my, lname, lidx); if (n == -1) { strcpy(val, ""); diff --git a/allParam/psql/psqlParam.c b/allParam/psql/psqlParam.c index 4e03092..c43dfbf 100644 --- a/allParam/psql/psqlParam.c +++ b/allParam/psql/psqlParam.c @@ -2,6 +2,7 @@ #include #include +#include #include @@ -31,7 +32,6 @@ int Param_getString(const Param *my, const char *name, const char *idx, int *row int Param_getIntArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, unsigned long int *val) { - int retVal; int fnum; int i; PGresult *result; @@ -39,10 +39,20 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma char whereClause[PG_MAX_CLAUSE_LEN]; char query[PG_MAX_QUERY_LEN]; char *endptr; + char lname[strlen(name) + 1]; + char lidx[strlen(idx) + 1]; + + for(i = 0 ; i <=strlen(name) ; i++) { + lname[i] = tolower(name[i]); + } + for(i = 0 ; i <=strlen(idx) ; i++) { + lidx[i] = tolower(idx[i]); + } + *rows = 0; conn = PQconnectdb("host=casino dbname=bsailer user=bsailer"); - sprintf(whereClause, "WHERE name = \'%s\' AND idx = \'%s\' ORDER BY seq_num", name, idx); - sprintf(query, "SELECT * FROM card_params %s UNION SELECT * FROM cpus %s UNION SELECT * FROM crate_params %s UNION SELECT * FROM crate_setup %s;", whereClause, whereClause, whereClause, whereClause); + sprintf(whereClause, "WHERE name = '%s' AND idx = '%s' ", lname, lidx); + sprintf(query, "SELECT * FROM card_params %s UNION SELECT * FROM cpus %s UNION SELECT * FROM crate_params %s UNION SELECT * FROM crate_setup %s ORDER BY seq_num;", whereClause, whereClause, whereClause, whereClause); result = PQexec(conn, query); if(PQresultStatus(result) != PGRES_TUPLES_OK) { @@ -50,48 +60,48 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma return -1; } fnum = PQfnumber(result, "value"); - + if ((*rows = PQntuples(result)) > maxrows) { - Param_strerror((Param *) my, "Result has to many rows. Returning only 'maxrows' rows.\n"); - for (i = 0 ; i < maxrows ; i++) { - val[i] = strtoul(PQgetvalue(result, i, fnum), &endptr, 0); - if(*endptr != '\0') { - Param_strerror((Param *) my, "Value seems to be no integer.\n"); - retVal = -1; - } - } - retVal = -1; - } else { - for (i = 0 ; i < *rows ; i++) { - val[i] = strtoul(PQgetvalue(result, i, fnum), &endptr, 0); - if(*endptr != '\0') { - Param_strerror((Param *) my, "Value seems to be no integer.\n"); - retVal = -1; - } - } - for (i = *rows ; i < maxrows ; i++) { - val[i] = 0; + *rows = maxrows; + } + for (i = 0 ; i < *rows ; i++) { + val[i] = strtoul(PQgetvalue(result, i, fnum), &endptr, 0); + if(*endptr != '\0') { + Param_strerror((Param *) my, "Value seems to be no integer.\n"); + *rows = 0; + return -1; } - retVal = 0; + } + for (i = *rows ; i < maxrows ; i++) { + val[i] = 0; } PQfinish(conn); - return retVal; + return 0; } int Param_getStringArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, char **val) { - int retVal; int fnum; int i; PGconn *conn; PGresult *result; char whereClause[PG_MAX_CLAUSE_LEN]; char query[PG_MAX_QUERY_LEN]; + char lname[strlen(name) + 1]; + char lidx[strlen(idx) + 1]; + + for(i = 0 ; i <=strlen(name) ; i++) { + lname[i] = tolower(name[i]); + } + for(i = 0 ; i <=strlen(idx) ; i++) { + lidx[i] = tolower(idx[i]); + } + *rows = 0; conn = PQconnectdb("host=casino dbname=bsailer user=bsailer"); - sprintf(whereClause, "WHERE name = \'%s\' AND idx = \'%s\' ORDER BY seq_num", name, idx); - sprintf(query, "SELECT * FROM card_params %s UNION SELECT * FROM cpus %s UNION SELECT * FROM crate_params %s UNION SELECT * FROM crate_setup %s;", whereClause, whereClause, whereClause, whereClause); + sprintf(whereClause, "WHERE name = '%s' AND idx = '%s' ", lname, lidx); + sprintf(query, "SELECT * FROM card_params %s UNION SELECT * FROM cpus %s UNION SELECT * FROM crate_params %s UNION SELECT * FROM crate_setup %s ORDER BY seq_num;", whereClause, whereClause, whereClause, whereClause); result = PQexec(conn, query); if(PQresultStatus(result) != PGRES_TUPLES_OK) { @@ -101,23 +111,17 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int fnum = PQfnumber(result, "value"); if ((*rows = PQntuples(result)) > maxrows) { - Param_strerror((Param *) my, "Result has to many rows. Returning only 'maxrows' rows.\n"); - for (i = 0 ; i < maxrows ; i++) { - strcpy(val[i], PQgetvalue(result, i, fnum)); - } - retVal = -1; - } else { - for (i = 0 ; i < *rows ; i++) { - strcpy(val[i], PQgetvalue(result, i, fnum)); - } - for (i = *rows ; i < maxrows ; i++) { - val[i] = NULL; - } - retVal = 0; + *rows = maxrows; + } + for (i = 0 ; i < *rows ; i++) { + strcpy(val[i], PQgetvalue(result, i, fnum)); + } + for (i = *rows ; i < maxrows ; i++) { + val[i] = NULL; } PQfinish(conn); - return retVal; + return 0; } const char *Param_getErrStr(const Param *my) @@ -127,7 +131,7 @@ const char *Param_getErrStr(const Param *my) static void Param_strerror(Param *my, const char *strerror) { - my->strerror = realloc(my->strerror, strlen(strerror) + 1); + my->strerror = realloc(my->strerror, (strlen(strerror) + 1) * sizeof(char)); if(my->strerror != NULL) { strcpy(my->strerror, strerror); } diff --git a/allParam/tcl/tclParam.c b/allParam/tcl/tclParam.c index 145266f..028fff7 100644 --- a/allParam/tcl/tclParam.c +++ b/allParam/tcl/tclParam.c @@ -73,18 +73,13 @@ int Param_getString(const Param *my, const char *name, const char *idx, int *row int i; char lname[strlen(name) + 1]; char lidx[strlen(idx) + 1]; - i = 0; - while(name[i] != '\0') { + + for(i = 0 ; i <=strlen(name) ; i++) { lname[i] = tolower(name[i]); - i++; } - lname[i] = '\0'; - i = 0; - while(idx[i] != '\0') { + for(i = 0 ; i <=strlen(idx) ; i++) { lidx[i] = tolower(idx[i]); - i++; } - lidx[i] = '\0'; if(Tcl_GetVar2(my->interp, lname, lidx, 0) == 0) { *row = 0; -- 2.43.0