int i;
char *endptr;
EXEC SQL BEGIN DECLARE SECTION;
- char value[PARAM_MAX_VALUE_LEN][PARAM_MAX_NVALS];
+ char *value[PARAM_MAX_NVALS];
char sqlname[PARAM_MAX_NAME_LEN];
char sqlidx[PARAM_MAX_NAME_LEN];
EXEC SQL END DECLARE SECTION;
- strcpy(sqlname, name);
- strcpy(sqlidx, idx);
+ 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) {
val[i] = 0;
}
}
- retVal = 0;
+
+ for(i = 0 ; i < PARAM_MAX_NVALS ; i++) {
+ free(value[i]);
+ }
+ retVal = 0;
}
int Param_getStringArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, char **val)
int retVal;
int i;
EXEC SQL BEGIN DECLARE SECTION;
- char value[PARAM_MAX_VALUE_LEN][PARAM_MAX_NVALS];
+ char *value[PARAM_MAX_NVALS];
char sqlname[PARAM_MAX_NAME_LEN];
char sqlidx[PARAM_MAX_NAME_LEN];
EXEC SQL END DECLARE SECTION;
- strcpy(sqlname, name);
- strcpy(sqlidx, idx);
+ 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) {
retVal = 0;
}
+ for(i = 0 ; i < PARAM_MAX_NVALS ; i++) {
+ free(value[i]);
+ }
return retVal;
}