aboutsummaryrefslogtreecommitdiff
path: root/libBasicTableOperations.tcl
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2011-04-15 20:04:32 -0400
committerEugeniy Mikhailov <evgmik@gmail.com>2011-04-15 20:04:32 -0400
commitf0a034754528c975e6170307337e13c25e3c9b6c (patch)
tree92978f0bfea028d1f0d7ca31fc0e0da29bc9b752 /libBasicTableOperations.tcl
parent2d31d52191ace6bbeccf4cfede8734d6bb494da4 (diff)
downloadGradeBook-f0a034754528c975e6170307337e13c25e3c9b6c.tar.gz
GradeBook-f0a034754528c975e6170307337e13c25e3c9b6c.zip
low level table operations moved to separate routine
Ignore-this: be0109b9771cb2b8ec28491b8d3154bc darcs-hash:20110416000432-067c0-c8a54be0240ab9773121708e65d8835d6a769535.gz
Diffstat (limited to 'libBasicTableOperations.tcl')
-rwxr-xr-xlibBasicTableOperations.tcl74
1 files changed, 74 insertions, 0 deletions
diff --git a/libBasicTableOperations.tcl b/libBasicTableOperations.tcl
new file mode 100755
index 0000000..4eca8c8
--- /dev/null
+++ b/libBasicTableOperations.tcl
@@ -0,0 +1,74 @@
+#!/bin/sh
+# FILE: "/home/evmik/src/my_src/GradeBook/libBasicTableOperations.tcl"
+# LAST MODIFICATION: "Fri, 15 Apr 2011 20:01:22 -0400 (evmik)"
+# (C) 2011 by Eugeniy Mikhailov, <evgmik@gmail.com>
+# $Id:$
+# vim:set ft=tcl: \
+exec tclsh "$0" "$@"
+
+# #######################################################
+# everywhere below db must be initialized with command
+# sqlite3 db $dbfile
+# #######################################################
+
+proc getColListFromTable {table} {
+ set eval_str [concat SELECT * FROM \'$table\']
+ set err [catch {
+ db eval $eval_str v {
+ set all_column_names $v(*)
+ }
+ } errStat ]
+ if { $err } {
+ dbg "we should never be here if GradesTable exists" 1
+ dbg $errStat 1
+ htmlErrorMsg $errStat
+ }
+ return $all_column_names
+}
+
+proc SelectColvalueFromTable { table column_of_interest col row_value } {
+ # select value of 'column_of_interest' from 'table' where 'col'='row_value'
+ set value {}
+ set eval_str "SELECT \"$column_of_interest\" FROM \'$table\' WHERE \"$col\"=\"$row_value\""
+ set err [catch {
+ db eval $eval_str v {
+ set value $v($column_of_interest)
+ }
+ } errStat ]
+ if { $err } {
+ set msg_text "the following error happen in proc SelectColvalueFromTable while selecting from table $table $errStat"
+ htmlErrorMsg $msg_text
+ dbg $msg_text 3
+ set $value {}
+ }
+ return $value
+}
+
+proc existsColumnWithRowvalueInTable { table column row_value } {
+ set sql_str [concat SELECT 1 FROM \'$table\' WHERE \"$column\"=\"$row_value\"]
+ if {![db exists $sql_str]} {
+ dbg "Column \'$column\' does not have row with value \'$row_value\' in table \'$table\'" 3
+ return false
+ } else {
+ return true
+ }
+}
+
+proc UpdateColumnWithValueInTableWhere { table column val where_column row_value } {
+ set eval_str [concat UPDATE \'$table\' SET \"$column\"='$val' WHERE \"$where_column\"=\'$row_value\']
+ set err [catch {db eval $eval_str } errStat]
+ if { $err } {
+ set msg_str "Unable to update column $column in the table $table where $where_column=$row_value. The following error happen: $errStat"
+ htmlErrorMsg $msg_str
+ dbg $msg_str 3
+ }
+}
+
+proc doesColumnExists {col table} {
+ if { $col in [getColListFromTable $table] } {
+ return true;
+ } else {
+ return false;
+ }
+}
+