summaryrefslogtreecommitdiffstats
authorDon Pellegrino <don@drexel.edu>2009-06-17 17:57:11 (GMT)
committer Don Pellegrino <don@drexel.edu>2009-06-17 17:57:11 (GMT)
commitd2d6dbcd7cce68b96c314dabe6f6fc9fd8990704 (patch) (side-by-side diff)
tree3eb67adcc036d2830c956407b8573c8632acc66d
parent7fad2411ea4b5c1deb93541ea658079f8d148931 (diff)
downloadexp005-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.h9
-rw-r--r--src/controller/selection_to_db.sqc9
-rw-r--r--src/controller/selsave.h9
-rw-r--r--src/controller/selsave.sqc41
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;
+}

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.