Commit ec2139334b77aab040d7617ec5a190820a68cf4c
1 parent
99518bb6
add web_arg_value_not_null into web/CXM_common.anubis
add settings management for sqlite3 database
Showing
3 changed files
with
148 additions
and
3 deletions
Show diff stats
calexium_lib/database/migration_common_sqlite3.anubis
| ... | ... | @@ -16,9 +16,6 @@ read data_base/sqlite_foreign_key.anubis |
| 16 | 16 | read calexium_lib/database/db_utils.anubis |
| 17 | 17 | read calexium_lib/net_services_protocols/logger_service.anubis |
| 18 | 18 | |
| 19 | - read ezmailbox_constants.anubis | |
| 20 | - | |
| 21 | - | |
| 22 | 19 | public type DbTable: |
| 23 | 20 | table(String name, String create_query), |
| 24 | 21 | table(String db_name, String name, String create_query), | ... | ... |
| 1 | +/* | |
| 2 | + * Created by PyramIDE. | |
| 3 | + * User: Totoro | |
| 4 | + * Date: 11/08/2012 | |
| 5 | + * Time: 17:44 | |
| 6 | + * | |
| 7 | + * To change this template use Tools | Options | Coding | Edit Standard Headers. | |
| 8 | + */ | |
| 9 | + | |
| 10 | +read tools/basis.anubis | |
| 11 | +read data_base/sqlite.anubis | |
| 12 | +read data_base/db_tools.anubis | |
| 13 | +read calexium_lib/database/db_utils.anubis | |
| 14 | + | |
| 15 | + | |
| 16 | +public define Maybe(String) | |
| 17 | + select_settings | |
| 18 | + ( | |
| 19 | + SQLite3DataBase db, | |
| 20 | + String var, | |
| 21 | + )= | |
| 22 | + if sql_query_timeout(db, "SELECT var_value FROM settings WHERE var_name=" + db_make_sql_string(var) + ";", [], "select_settings") is | |
| 23 | + { | |
| 24 | + error(_) then failure, //error in the SQL request | |
| 25 | + ok(_, cursor, _) then | |
| 26 | + if cursor(unique) is | |
| 27 | + { | |
| 28 | + error(_) then failure, | |
| 29 | + no_more_row then failure, //can't find the var_value in the table, because the row is empty | |
| 30 | + row(current) then success(text(current)(0)) | |
| 31 | + } | |
| 32 | + }. | |
| 33 | + | |
| 34 | +public define String | |
| 35 | + select_settings | |
| 36 | + ( | |
| 37 | + SQLite3DataBase db, | |
| 38 | + String var, | |
| 39 | + String default | |
| 40 | + )= | |
| 41 | + if select_settings(db, var) is | |
| 42 | + { | |
| 43 | + failure then default, //error in the SQL request | |
| 44 | + success(value) then value | |
| 45 | + }. | |
| 46 | + | |
| 47 | +public define Int | |
| 48 | + select_settings | |
| 49 | + ( | |
| 50 | + SQLite3DataBase db, | |
| 51 | + String var, | |
| 52 | + Int default | |
| 53 | + )= | |
| 54 | + if select_settings(db, var) is | |
| 55 | + { | |
| 56 | + failure then default, //error in the SQL request | |
| 57 | + success(value) then | |
| 58 | + if decimal_scan(value) is | |
| 59 | + { | |
| 60 | + failure then default, | |
| 61 | + success(v) then v | |
| 62 | + } | |
| 63 | + }. | |
| 64 | + | |
| 65 | +public define Bool | |
| 66 | + select_settings | |
| 67 | + ( | |
| 68 | + SQLite3DataBase db, | |
| 69 | + String var, | |
| 70 | + Bool default | |
| 71 | + )= | |
| 72 | + if select_settings(db, var) is | |
| 73 | + { | |
| 74 | + failure then default, //error in the SQL request | |
| 75 | + success(value) then | |
| 76 | + if value = "true" then true | |
| 77 | + else if value = "false" then false | |
| 78 | + // old values | |
| 79 | + else if value = "1" then true | |
| 80 | + else if value = "0" then false | |
| 81 | + // failback | |
| 82 | + else if decimal_scan(value) is | |
| 83 | + { | |
| 84 | + failure then default, | |
| 85 | + success(v) then v!=0 | |
| 86 | + } | |
| 87 | + }. | |
| 88 | + | |
| 89 | +public define One | |
| 90 | + update_settings | |
| 91 | + ( | |
| 92 | + SQLite3DataBase db, | |
| 93 | + String var, | |
| 94 | + Bool value | |
| 95 | + )= | |
| 96 | + with bool_str = if value is true then "true" else "false", | |
| 97 | + with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_String(":value", bool_str)], | |
| 98 | + if select_settings(db, var) is success(_) then | |
| 99 | + forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 100 | + else | |
| 101 | + forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 102 | + . | |
| 103 | + | |
| 104 | +public define One | |
| 105 | + update_settings | |
| 106 | + ( | |
| 107 | + SQLite3DataBase db, | |
| 108 | + String var, | |
| 109 | + Int value | |
| 110 | + )= | |
| 111 | + with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_Int(":value", value)], | |
| 112 | + if select_settings(db, var) is success(_) then | |
| 113 | + forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 114 | + else | |
| 115 | + forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 116 | + . | |
| 117 | + | |
| 118 | + | |
| 119 | +public define One | |
| 120 | + update_settings | |
| 121 | + ( | |
| 122 | + SQLite3DataBase db, | |
| 123 | + String var, | |
| 124 | + String value | |
| 125 | + )= | |
| 126 | + with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_String(":value", value)], | |
| 127 | + if select_settings(db, var) is success(_) then | |
| 128 | + forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 129 | + else | |
| 130 | + forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 131 | + . | |
| 132 | + | ... | ... |
calexium_lib/web/CXM_common.anubis
| ... | ... | @@ -105,6 +105,22 @@ public define Web_arg_value |
| 105 | 105 | } |
| 106 | 106 | }. |
| 107 | 107 | |
| 108 | +public define Web_arg_value | |
| 109 | + web_arg_value_not_null | |
| 110 | + ( | |
| 111 | + List(Web_arg) lwa, | |
| 112 | + String name, | |
| 113 | + ) = | |
| 114 | + if web_arg_value(lwa, name) is | |
| 115 | + { | |
| 116 | + not_found then not_found | |
| 117 | + found(str) then | |
| 118 | + if str = "" then | |
| 119 | + not_found | |
| 120 | + else | |
| 121 | + found(str) | |
| 122 | + }. | |
| 123 | + | |
| 108 | 124 | *Ignore* |
| 109 | 125 | |
| 110 | 126 | public define Maybe((String,String)) | ... | ... |