author | Don Pellegrino <don@drexel.edu> | 2009-06-17 17:57:11 (GMT) |
---|---|---|
committer | Don Pellegrino <don@drexel.edu> | 2009-06-17 17:57:11 (GMT) |
commit | d2d6dbcd7cce68b96c314dabe6f6fc9fd8990704 (patch) (side-by-side diff) | |
tree | 3eb67adcc036d2830c956407b8573c8632acc66d | |
parent | 7fad2411ea4b5c1deb93541ea658079f8d148931 (diff) | |
download | exp005-d2d6dbcd7cce68b96c314dabe6f6fc9fd8990704.zip exp005-d2d6dbcd7cce68b96c314dabe6f6fc9fd8990704.tar.gz exp005-d2d6dbcd7cce68b96c314dabe6f6fc9fd8990704.tar.bz2 |
Renamed selection_to_db to selsave to reduce the filename to eight
characters. This is necessary due to the limitation of the package
name in DB2 for the binding. It will conflict with selection_from_db otherwise.
-rw-r--r-- | src/controller/selection_to_db.h | 9 | ||||
-rw-r--r-- | src/controller/selection_to_db.sqc | 9 | ||||
-rw-r--r-- | src/controller/selsave.h | 9 | ||||
-rw-r--r-- | src/controller/selsave.sqc | 41 |
4 files changed, 56 insertions, 12 deletions
diff --git a/src/controller/selection_to_db.h b/src/controller/selection_to_db.h deleted file mode 100644 index 4344e0b..0000000 --- a/src/controller/selection_to_db.h +++ b/dev/null @@ -1,9 +0,0 @@ -#ifndef SELECTION_TO_DB_H -#define SELECTION_TO_DB_H - -/* - * Send the current selection from memory to the database. - */ -void selection_to_db (void); - -#endif // SELECTION_TO_DB_H diff --git a/src/controller/selection_to_db.sqc b/src/controller/selection_to_db.sqc index a6c91b9..0d7de7f 100644 --- a/src/controller/selection_to_db.sqc +++ b/src/controller/selection_to_db.sqc @@ -1,8 +1,9 @@ #include "selection_to_db.h" #include "../view/exp004state0.h" #include <string.h> - -EXEC SQL INCLUDE sqlca; +#include "../util/check_error.h" +#include "sqlca.h" +extern struct sqlca sqlca; /* * A simple alias to make the code more readable. @@ -22,7 +23,8 @@ selection_to_db (void) * gi is defined as NOT NULL this will clear the entire table. */ EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL; - + check_error (__FILE__, __LINE__); + for (unsigned int i = 0; i < ROWS; i++) { if (S.selection[i] == true) @@ -33,6 +35,7 @@ selection_to_db (void) } EXEC SQL COMMIT; + check_error (__FILE__, __LINE__); return; } diff --git a/src/controller/selsave.h b/src/controller/selsave.h new file mode 100644 index 0000000..f5b8fa7 --- a/dev/null +++ b/src/controller/selsave.h @@ -0,0 +1,9 @@ +#ifndef SELSAVE_H +#define SELSAVE_H + +/* + * Send the current selection from memory to the database. + */ +void selsave (void); + +#endif // SELSAVE_H diff --git a/src/controller/selsave.sqc b/src/controller/selsave.sqc new file mode 100644 index 0000000..97a73b2 --- a/dev/null +++ b/src/controller/selsave.sqc @@ -0,0 +1,41 @@ +#include "../util/check_error.h" +#include "../view/exp004state0.h" +#include "selsave.h" +#include "sqlca.h" +#include <string.h> +extern struct sqlca sqlca; + +/* + * A simple alias to make the code more readable. + */ +#define S exp004state0 + +void +selsave (void) +{ + EXEC SQL BEGIN DECLARE SECTION; + char gi[255]; + EXEC SQL END DECLARE SECTION; + + /* + * WHERE gi IS NOT NULL is added to prevent the PRECOMPILE command + * from throwing a warning about modifying an entire table. Since + * gi is defined as NOT NULL this will clear the entire table. + */ + EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL; + check_error (__FILE__, __LINE__); + + for (unsigned int i = 0; i < ROWS; i++) + { + if (S.selection[i] == true) + { + strncpy (gi, S.gi_data[i] + 3, sizeof(gi)); + EXEC SQL INSERT INTO vis_selection VALUES (:gi); + } + } + + EXEC SQL COMMIT; + check_error (__FILE__, __LINE__); + + return; +} |