From b65923a474609449fd5347480d328d343617d23d Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 31 Aug 2000 15:31:43 +0000 Subject: [PATCH] *** empty log message *** --- allParam/ora/oraParam.pc | 41 +++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/allParam/ora/oraParam.pc b/allParam/ora/oraParam.pc index b56f033..0c3629b 100644 --- a/allParam/ora/oraParam.pc +++ b/allParam/ora/oraParam.pc @@ -35,14 +35,22 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma 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) { @@ -67,7 +75,11 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma 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) @@ -75,14 +87,22 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int 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) { @@ -101,6 +121,9 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int retVal = 0; } + for(i = 0 ; i < PARAM_MAX_NVALS ; i++) { + free(value[i]); + } return retVal; } -- 2.43.0