summaryrefslogtreecommitdiffstats
Unidiff
-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 @@
1#ifndef SELECTION_TO_DB_H
2#define SELECTION_TO_DB_H
3
4/*
5 * Send the current selection from memory to the database.
6 */
7void selection_to_db (void);
8
9#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 @@
1#include "selection_to_db.h"1#include "selection_to_db.h"
2#include "../view/exp004state0.h"2#include "../view/exp004state0.h"
3#include <string.h>3#include <string.h>
44#include "../util/check_error.h"
5EXEC SQL INCLUDE sqlca;5#include "sqlca.h"
6extern struct sqlca sqlca;
67
7/*8/*
8 * A simple alias to make the code more readable.9 * A simple alias to make the code more readable.
@@ -22,7 +23,8 @@ selection_to_db (void)
22 * gi is defined as NOT NULL this will clear the entire table.23 * gi is defined as NOT NULL this will clear the entire table.
23 */24 */
24 EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL;25 EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL;
25 26 check_error (__FILE__, __LINE__);
27
26 for (unsigned int i = 0; i < ROWS; i++)28 for (unsigned int i = 0; i < ROWS; i++)
27 {29 {
28 if (S.selection[i] == true)30 if (S.selection[i] == true)
@@ -33,6 +35,7 @@ selection_to_db (void)
33 }35 }
3436
35 EXEC SQL COMMIT;37 EXEC SQL COMMIT;
38 check_error (__FILE__, __LINE__);
3639
37 return;40 return;
38}41}
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 @@
1#ifndef SELSAVE_H
2#define SELSAVE_H
3
4/*
5 * Send the current selection from memory to the database.
6 */
7void selsave (void);
8
9#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 @@
1#include "../util/check_error.h"
2#include "../view/exp004state0.h"
3#include "selsave.h"
4#include "sqlca.h"
5#include <string.h>
6extern struct sqlca sqlca;
7
8/*
9 * A simple alias to make the code more readable.
10 */
11#define S exp004state0
12
13void
14selsave (void)
15{
16 EXEC SQL BEGIN DECLARE SECTION;
17 char gi[255];
18 EXEC SQL END DECLARE SECTION;
19
20 /*
21 * WHERE gi IS NOT NULL is added to prevent the PRECOMPILE command
22 * from throwing a warning about modifying an entire table. Since
23 * gi is defined as NOT NULL this will clear the entire table.
24 */
25 EXEC SQL DELETE FROM vis_selection WHERE gi IS NOT NULL;
26 check_error (__FILE__, __LINE__);
27
28 for (unsigned int i = 0; i < ROWS; i++)
29 {
30 if (S.selection[i] == true)
31 {
32 strncpy (gi, S.gi_data[i] + 3, sizeof(gi));
33 EXEC SQL INSERT INTO vis_selection VALUES (:gi);
34 }
35 }
36
37 EXEC SQL COMMIT;
38 check_error (__FILE__, __LINE__);
39
40 return;
41}

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.