From d29bbcc0a2b0f9cbc6d51ca64306d8e6314313ef Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 31 May 2001 12:58:33 +0000 Subject: [PATCH] *** empty log message *** --- allParam/ora/oraParam.pc | 53 ++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/allParam/ora/oraParam.pc b/allParam/ora/oraParam.pc index bb4722f..4af66f7 100644 --- a/allParam/ora/oraParam.pc +++ b/allParam/ora/oraParam.pc @@ -68,7 +68,6 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma { int retVal = 0; int i; - char *endptr; EXEC SQL WHENEVER SQLERROR DO Param_strerror(my, sqlca.sqlerrm.sqlerrmc); EXEC SQL WHENEVER SQLERROR DO Param_rollback(); @@ -100,7 +99,11 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma EXEC SQL CONNECT :un IDENTIFIED BY :pw; - EXEC SQL SELECT value INTO :value FROM daq.param_int WHERE setup = :sqlsetup AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + if (my->setup != NULL) { + EXEC SQL SELECT value INTO :value FROM daq.param_int WHERE setup = :sqlsetup AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } else { + EXEC SQL SELECT value INTO :value FROM daq.param_int WHERE setup IS NULL AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } *rows = sqlca.sqlerrd[2]; @@ -150,18 +153,43 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int EXEC SQL CONNECT :un IDENTIFIED BY :pw; - EXEC SQL SELECT value INTO :value FROM daq.param_string WHERE setup = :sqlsetup AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + if (my->setup != NULL) { + EXEC SQL SELECT value INTO :value FROM daq.param_string WHERE setup = :sqlsetup AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } else { + EXEC SQL SELECT value INTO :value FROM daq.param_string WHERE setup IS NULL AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } *rows = sqlca.sqlerrd[2]; - if (*rows > maxrows) { - *rows = maxrows; - } - for (i = 0 ; i < *rows ; i++) { - int j = PARAM_MAX_VALUE_LEN - 1; - while(value[i][--j] == ' '); - value[i][j + 1] = '\0'; - strcpy(val[i], value[i]); + if (*rows == 0) { + EXEC SQL BEGIN DECLARE SECTION; + unsigned long int intvalue[PARAM_MAX_ARRAY_LEN]; + EXEC SQL END DECLARE SECTION; + + if (my->setup != NULL) { + EXEC SQL SELECT value INTO :intvalue FROM daq.param_int WHERE setup = :sqlsetup AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } else { + EXEC SQL SELECT value INTO :intvalue FROM daq.param_int WHERE setup IS NULL AND name = :sqlname AND idx = :sqlidx ORDER BY seq_num; + } + + *rows = sqlca.sqlerrd[2]; + + if (*rows > maxrows) { + *rows = maxrows; + } + for (i = 0 ; i < *rows ; i++) { + sprintf(val[i], "%ld", intvalue[i]); + } + } else { + if (*rows > maxrows) { + *rows = maxrows; + } + for (i = 0 ; i < *rows ; i++) { + int j = PARAM_MAX_VALUE_LEN - 1; + while(value[i][--j] == ' '); + value[i][j + 1] = '\0'; + strcpy(val[i], value[i]); + } } EXEC SQL COMMIT RELEASE; @@ -222,7 +250,6 @@ int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *si struct stat fileS, *file = &fileS; stat(filename, file); *size = (size_t) file->st_size; - fprintf(stderr, "Result: %d.\n", *size); *val = stream; } return retVal; @@ -287,7 +314,7 @@ int Param_storeString(const Param *my, const char *name, const char *idx, const char sqlsetup[PARAM_MAX_NAME_LEN]; char sqlname[PARAM_MAX_NAME_LEN]; char sqlidx[PARAM_MAX_NAME_LEN]; - char *value; + const char *value; EXEC SQL END DECLARE SECTION; if (my->setup != NULL) { -- 2.43.0