]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
*** empty log message ***
authorhades <hades>
Thu, 31 Aug 2000 16:33:40 +0000 (16:33 +0000)
committerhades <hades>
Thu, 31 Aug 2000 16:33:40 +0000 (16:33 +0000)
allParam/file/fileParam.c
allParam/psql/psqlParam.c
allParam/tcl/tclParam.c

index 77b542aa8a3602cdf267b18636d41bd2a2fc861a..114e5dc0d8ddefe03a1ae7cceee6ccb170f077a2 100644 (file)
@@ -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, "");
index 4e03092f0a4ddcd2e0fa0c5993a4cf4ec4299c90..c43dfbf46e32c136e09f89b391886c8fe40504b2 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <ctype.h>
 
 #include <libpq-fe.h>
 
@@ -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);
        }
index 145266f331ae4dd0d21e1f88c6d509e2a3cafa50..028fff7edf6a1bef938aa9a6e49ebd4221fecef5 100644 (file)
@@ -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;