summaryrefslogtreecommitdiffstats
authorDon Pellegrino <don@drexel.edu>2009-10-01 20:18:18 (GMT)
committer Don Pellegrino <don@drexel.edu>2009-10-01 20:18:18 (GMT)
commit3ca9bb7c3c90a8e7da3e2e440a72cdb11b3e66b0 (patch) (unidiff)
tree2ae180bb0c0c9c68c8b806edaf41b8a086b80d25
parentaeaf641df8c44c7fa415abd325233fe739bf5b1d (diff)
downloadexp005-3ca9bb7c3c90a8e7da3e2e440a72cdb11b3e66b0.zip
exp005-3ca9bb7c3c90a8e7da3e2e440a72cdb11b3e66b0.tar.gz
exp005-3ca9bb7c3c90a8e7da3e2e440a72cdb11b3e66b0.tar.bz2
Separated checking for an error in the database library from checking
for an error in the OpenGL library. The check_error function still checks for both however the check_error_db function can now be used to check only the database. This is used at connect time as the OpenGL library may not yet be fully initialized and running the error checking could be premature.
-rw-r--r--src/Makefile.am2
-rw-r--r--src/db/dbconnect.sqc12
-rw-r--r--src/util/check_error.c6
-rw-r--r--src/util/check_error_db.c13
-rw-r--r--src/util/check_error_db.h9
5 files changed, 36 insertions, 6 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 4938ed4..d6253b8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,6 +35,7 @@ flumap_SOURCES = \
35 model/state/zoom_info_init.c \35 model/state/zoom_info_init.c \
36 util/ati_meminfo.c \36 util/ati_meminfo.c \
37 util/check_error.c \37 util/check_error.c \
38 util/check_error_db.c \
38 util/pick_convert.c \39 util/pick_convert.c \
39 util/sqlinfoprint.c \40 util/sqlinfoprint.c \
40 view/geometry.c \41 view/geometry.c \
@@ -75,6 +76,7 @@ noinst_HEADERS = \
75 model/state/zoom_info_init.h \76 model/state/zoom_info_init.h \
76 util/ati_meminfo.h \77 util/ati_meminfo.h \
77 util/check_error.h \78 util/check_error.h \
79 util/check_error_db.h \
78 util/pick_convert.h \80 util/pick_convert.h \
79 util/sqlinfoprint.h \81 util/sqlinfoprint.h \
80 view/geometry.h \82 view/geometry.h \
diff --git a/src/db/dbconnect.sqc b/src/db/dbconnect.sqc
index 1e41a12..aab7bcb 100644
--- a/src/db/dbconnect.sqc
+++ b/src/db/dbconnect.sqc
@@ -1,5 +1,5 @@
1#include "dbconnect.h"1#include "dbconnect.h"
2#include "../util/check_error.h"2#include "../util/check_error_db.h"
33
4EXEC SQL INCLUDE sqlca;4EXEC SQL INCLUDE sqlca;
55
@@ -7,5 +7,13 @@ void
7dbconnect (void)7dbconnect (void)
8{8{
9 EXEC SQL CONNECT TO exp004;9 EXEC SQL CONNECT TO exp004;
10 check_error (__FILE__, __LINE__);10
11 /*
12 * Only check for a database error rather than using check_error to
13 * test for OpenGL and database errors. OpenGL may not yet be
14 * prepared and checking it prematurely could cause odd behavior.
15 */
16 check_error_db (__FILE__, __LINE__);
17
18 return;
11}19}
diff --git a/src/util/check_error.c b/src/util/check_error.c
index c47ca43..7d116e9 100644
--- a/src/util/check_error.c
+++ b/src/util/check_error.c
@@ -2,8 +2,7 @@
2#include <error.h>2#include <error.h>
3#include <errno.h>3#include <errno.h>
4#include <stdlib.h>4#include <stdlib.h>
5#include "sqlinfoprint.h"5#include "check_error_db.h"
6extern struct sqlca sqlca;
76
8void7void
9check_error (const char *filename, const unsigned int linenum)8check_error (const char *filename, const unsigned int linenum)
@@ -23,8 +22,7 @@ check_error (const char *filename, const unsigned int linenum)
23 /*22 /*
24 * Check for an error from the Database API.23 * Check for an error from the Database API.
25 */24 */
26 if (sqlinfoprint ("DB Error", &sqlca, filename, linenum) == 1)25 check_error_db (filename, linenum);
27 exit (EXIT_FAILURE);
2826
29 return;27 return;
30}28}
diff --git a/src/util/check_error_db.c b/src/util/check_error_db.c
new file mode 100644
index 0000000..a6b7f51
--- a/dev/null
+++ b/src/util/check_error_db.c
@@ -0,0 +1,13 @@
1#include "check_error_db.h"
2#include "sqlinfoprint.h"
3#include <stdlib.h>
4extern struct sqlca sqlca;
5
6void
7check_error_db (const char *filename, const unsigned int linenum)
8{
9 if (sqlinfoprint ("DB Error", &sqlca, filename, linenum) == 1)
10 exit (EXIT_FAILURE);
11
12 return;
13}
diff --git a/src/util/check_error_db.h b/src/util/check_error_db.h
new file mode 100644
index 0000000..cc8467b
--- a/dev/null
+++ b/src/util/check_error_db.h
@@ -0,0 +1,9 @@
1#ifndef CHECK_ERROR_H
2#define CHECK_ERROR_H
3
4/*
5 * Check the database library to see if an error has occurred.
6 */
7void check_error_db (const char* filename, unsigned int linenum);
8
9#endif // CHECK_ERROR_H

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.