]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
*** empty log message ***
authorhadaq <hadaq>
Tue, 8 Oct 2002 07:09:54 +0000 (07:09 +0000)
committerhadaq <hadaq>
Tue, 8 Oct 2002 07:09:54 +0000 (07:09 +0000)
allParam/ora/oraParam.pc

index d7602c5e53609077929e2c373b5a7279f176219c..f9ea9192220d8d826961d2b00e9fc3712a08a308 100644 (file)
@@ -1,4 +1,4 @@
-static const char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/allParam/ora/oraParam.pc,v 1.23 2002-05-28 08:58:30 hadaq Exp $";
+static const char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/allParam/ora/oraParam.pc,v 1.24 2002-10-08 07:09:54 hadaq Exp $";
 #define _POSIX_C_SOURCE 199509L
 
 #include <ctype.h>
@@ -99,6 +99,8 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma
        EXEC SQL WHENEVER SQLERROR DO Param_rollback();
 
        EXEC SQL BEGIN DECLARE SECTION;
+       int l_valid;
+       int l_locked;
        char sqlsetup[PARAM_MAX_NAME_LEN];
        char sqlname[PARAM_MAX_NAME_LEN];
        char sqlidx[PARAM_MAX_NAME_LEN];
@@ -120,9 +122,69 @@ int Param_getIntArray(const Param *my, const char *name, const char *idx, int ma
        }
 
        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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_int_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_int_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :value
+                               FROM
+                                       daq.param_int_cache
+                               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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_int_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_int_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :value
+                               FROM
+                                       daq.param_int_cache
+                               WHERE
+                                               setup IS NULL
+                                       AND
+                                               name = :sqlname
+                                       AND
+                                               idx = :sqlidx
+                               ORDER BY
+                                       seq_num;
        }
 
        *rows = sqlca.sqlerrd[2];
@@ -147,6 +209,8 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int
        EXEC SQL WHENEVER SQLERROR DO Param_rollback();
 
        EXEC SQL BEGIN DECLARE SECTION;
+       int l_valid;
+       int l_locked;
        char sqlsetup[PARAM_MAX_NAME_LEN];
        char sqlname[PARAM_MAX_NAME_LEN];
        char sqlidx[PARAM_MAX_NAME_LEN];
@@ -168,9 +232,69 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int
        }
 
        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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_string_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_string_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :value
+                               FROM
+                                       daq.param_string_cache
+                               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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_string_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_string_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :value
+                               FROM
+                                       daq.param_string_cache
+                               WHERE
+                                               setup IS NULL
+                                       AND
+                                               name = :sqlname
+                                       AND
+                                               idx = :sqlidx
+                               ORDER BY
+                                       seq_num;
        }
 
        *rows = sqlca.sqlerrd[2];
@@ -181,9 +305,69 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int
                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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_int_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_int_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :intvalue
+                               FROM
+                                       daq.param_int_cache
+                               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;
+               EXEC SQL EXECUTE
+                       BEGIN
+                       SELECT
+                                       valid, locked
+                               INTO
+                                       :l_valid, :l_locked
+                               FROM
+                                       daq.cache_table_valid
+                               WHERE
+                                       cache_table = 'param_int_cache';
+                       IF
+                               :l_valid = 0 AND :l_locked = 0
+                       THEN
+                               daq.daq_oper_interface.validate_cache_table ( 'param_int_cache' );
+                       END IF;
+                       END;
+               END-EXEC;
+                       EXEC SQL SELECT
+                                       value
+                               INTO
+                                       :intvalue
+                               FROM
+                                       daq.param_int_cache
+                               WHERE
+                                               setup IS NULL
+                                       AND
+                                               name = :sqlname
+                                       AND
+                                               idx = :sqlidx
+                               ORDER BY
+                                       seq_num;
                }
 
                *rows = sqlca.sqlerrd[2];