int retVal;
        char valstr[PARAM_MAX_VALUE_LEN];
        char *endptr;
+
        if ((retVal = Param_getString(my, name, idx, row, valstr)) != 0) {
                return retVal;
        }
 {
        int i;
        int n;
-       char lname[strlen(name) + 1];
-       char lidx[strlen(idx) + 1];
+       char lname[PARAM_MAX_NAME_LEN];
+       char lidx[PARAM_MAX_NAME_LEN];
 
        for(i = 0 ; i <=strlen(name) ; i++) {
                lname[i] = tolower(name[i]);
        int retVal = 0;
        int i;
        char index[PARAM_MAX_NAME_LEN];
+
        *rows = 0;
        for (i = 0 ; i < maxrows ; i++) {
                sprintf(index,"%s%d", idx, i);
        int retVal = 0;
        int i;
        char index[PARAM_MAX_NAME_LEN];
+
        *rows = 0;
        for (i = 0 ; i < maxrows ; i++) {
                sprintf(index,"%s%d", idx, i);
 
 CFLAGS = -g -I$(ORACLE_HOME)/precomp/public/
 
-ORA_USER = hades/hades@db-hades.gsi.de
+ORA_USER = daq/daqall@db-hades.gsi.de
 
 PROC = $(ORACLE_HOME)/bin/proc
 PROCFLAGS = oraca=yes parse=partial sqlcheck=semantics \
 
 #define _POSIX_C_SOURCE 199509L
 
 #include <string.h>
+#include <ctype.h>
 
 #include <oraca.h>
 #include <sqlca.h>
        int retVal;
        int i;
        char *endptr;
+
+       EXEC SQL WHENEVER SQLERROR DO Param_strerror(my, "Some Oracle error occured.\n");
        EXEC SQL BEGIN DECLARE SECTION;
-       char *value[PARAM_MAX_NVALS];
+       char value[PARAM_MAX_NVALS][PARAM_MAX_VALUE_LEN];
        char sqlname[PARAM_MAX_NAME_LEN];
        char sqlidx[PARAM_MAX_NAME_LEN];
        EXEC SQL END DECLARE SECTION;
-       for(i = 0 ; i < PARAM_MAX_NVALS ; i++) {
-               value[i] = malloc(PARAM_MAX_VALUE_LEN * sizeof(char));
-       }
-       for (i = 0 ; i <= strlen(name) ; i++) {
-               sqlname[i] = tolower(name[i]);
-       }
-       for (i = 0 ; i <= strlen(idx) ; i++) {
-               sqlidx[i] = tolower(idx[i]);
-       }
 
-       EXEC SQL WHENEVER SQLERROR DO Param_strerror(my, "Some Oracle error occured.\n");
-       EXEC SQL SELECT VALUE INTO :value FROM daq.params WHERE NAME = ':sqlname' AND IDX = ':sqlidx' ORDER BY SEQ_NUM;
+       EXEC SQL SELECT value INTO :value FROM daq.params WHERE name = ':sqlname' AND idx = ':sqlidx' ORDER BY seq_num;
        *rows = sqlca.sqlerrd[2];
 
        if (*rows > maxrows) {
 {
        int retVal;
        int i;
+
+       EXEC SQL WHENEVER SQLERROR DO Param_strerror(my, "Some Oracle error occured.\n");
        EXEC SQL BEGIN DECLARE SECTION;
-       char *value[PARAM_MAX_NVALS];
+       char value[PARAM_MAX_NVALS][PARAM_MAX_VALUE_LEN];
        char sqlname[PARAM_MAX_NAME_LEN];
        char sqlidx[PARAM_MAX_NAME_LEN];
        EXEC SQL END DECLARE SECTION;
-       for(i = 0 ; i < PARAM_MAX_NVALS ; i++) {
-               value[i] = malloc(PARAM_MAX_VALUE_LEN * sizeof(char));
-       }
-       for (i = 0 ; i <= strlen(name) ; i++) {
-               sqlname[i] = tolower(name[i]);
-       }
-       for (i = 0 ; i <= strlen(idx) ; i++) {
-               sqlidx[i] = tolower(idx[i]);
-       }
 
-       EXEC SQL WHENEVER SQLERROR DO Param_strerror(my, "Some Oracle error occured.\n");
-       EXEC SQL SELECT VALUE INTO :value FROM daq.params WHERE NAME = ':sqlname' AND IDX = ':sqlidx' ORDER BY SEQ_NUM;
+       EXEC SQL SELECT value INTO :value FROM daq.params WHERE name = ':sqlname' AND idx = ':sqlidx' ORDER BY seq_num;
        *rows = sqlca.sqlerrd[2];
 
        if (*rows > maxrows) {
 
        char whereClause[PG_MAX_CLAUSE_LEN];
        char query[PG_MAX_QUERY_LEN];
        char *endptr;
-       char lname[strlen(name) + 1];
-       char lidx[strlen(idx) + 1];
+       char lname[PARAM_MAX_NAME_LEN];
+       char lidx[PARAM_MAX_NAME_LEN];
 
        for(i = 0 ; i <=strlen(name) ; i++) {
                lname[i] = tolower(name[i]);
        PGresult *result;
        char whereClause[PG_MAX_CLAUSE_LEN];
        char query[PG_MAX_QUERY_LEN];
-       char lname[strlen(name) + 1];
-       char lidx[strlen(idx) + 1];
+       char lname[PARAM_MAX_NAME_LEN];
+       char lidx[PARAM_MAX_NAME_LEN];
 
        for(i = 0 ; i <=strlen(name) ; i++) {
                lname[i] = tolower(name[i]);
 
 {
        int retVal;
        int i;
-       char lname[strlen(name) + 1];
-       char lidx[strlen(idx) + 1];
+       char lname[PARAM_MAX_NAME_LEN];
+       char lidx[PARAM_MAX_NAME_LEN];
 
        for(i = 0 ; i <=strlen(name) ; i++) {
                lname[i] = tolower(name[i]);
        int i;
        int row;
        char index[PARAM_MAX_NAME_LEN];
+
        *rows = 0;
        for (i = 0 ; i < maxrows ; i++) {
                sprintf(index,"%s%d", idx, i);
        int i;
        int row;
        char index[PARAM_MAX_NAME_LEN];
+
        *rows = 0;
        for (i = 0 ; i < maxrows ; i++) {
                sprintf(index,"%s%d", idx, i);