Commit 0ebe8ade1fead3f4315229ea5a395661dacd59d3

Authored by David RENÉ
1 parent 77ea06e9

[+] add println in SQL error case instead of nothing. Next time it must in logging part

[+] add get_db_ids_by_full_clause which allow to make query on any table, set the column id, give the full clause. Return a list of DB_id.
[+] add get_all_by_full_clause which allow to make query on any table, set the column id, give the full clause and provide the extractor for this column data type.
Showing 1 changed file with 39 additions and 6 deletions   Show diff stats
controller/hk_sql_utils.anubis
@@ -105,7 +105,7 @@ public define Int @@ -105,7 +105,7 @@ public define Int
105 105
106 if sql_query_timeout(db, "SELECT COUNT(\""+table_name+".id\") FROM "+table_name+" "+clause+";", [], "get_count_by_clause") is 106 if sql_query_timeout(db, "SELECT COUNT(\""+table_name+".id\") FROM "+table_name+" "+clause+";", [], "get_count_by_clause") is
107 { 107 {
108 - error(_) then 0, 108 + error(sql_error) then println("get_count_by_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n clause ["+clause+";]");0,
109 ok(_, cursor, _) then db_get_Int(cursor) 109 ok(_, cursor, _) then db_get_Int(cursor)
110 } 110 }
111 . 111 .
@@ -135,7 +135,7 @@ public define List(Int) @@ -135,7 +135,7 @@ public define List(Int)
135 135
136 if sql_query_timeout(db, "SELECT \"id\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is 136 if sql_query_timeout(db, "SELECT \"id\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is
137 { 137 {
138 - error(_) then [], 138 + error(sql_error) then println("get_ids_by_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n clause ["+clause+";]");[],
139 ok(_, cursor, _) then db_get_List_Int(cursor) 139 ok(_, cursor, _) then db_get_List_Int(cursor)
140 } 140 }
141 . 141 .
@@ -152,9 +152,9 @@ public define List(DB_id) @@ -152,9 +152,9 @@ public define List(DB_id)
152 else 152 else
153 "WHERE "+clause, 153 "WHERE "+clause,
154 154
155 - if sql_query_timeout(db, "SELECT \"id\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is 155 + if sql_query_timeout(db, "SELECT \"id\" FROM "+table_name+" "+final_clause+";", [], "get_db_ids_by_clause") is
156 { 156 {
157 - error(_) then [], 157 + error(sql_error) then println("get_db_ids_by_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n clause ["+clause+";]");[],
158 ok(_, cursor, _) then db_get_List_DB_id(cursor) 158 ok(_, cursor, _) then db_get_List_DB_id(cursor)
159 } 159 }
160 . 160 .
@@ -174,7 +174,7 @@ public define List(Int) @@ -174,7 +174,7 @@ public define List(Int)
174 174
175 if sql_query_timeout(db, "SELECT \""+id_col+"\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is 175 if sql_query_timeout(db, "SELECT \""+id_col+"\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is
176 { 176 {
177 - error(_) then [], 177 + error(sql_error) then println("get_ids_by_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n id_col["+id_col+"]\nclause ["+clause+";]");[],
178 ok(_, cursor, _) then db_get_List_Int(cursor) 178 ok(_, cursor, _) then db_get_List_Int(cursor)
179 } 179 }
180 . 180 .
@@ -194,7 +194,23 @@ public define List(DB_id) @@ -194,7 +194,23 @@ public define List(DB_id)
194 194
195 if sql_query_timeout(db, "SELECT \""+id_col+"\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is 195 if sql_query_timeout(db, "SELECT \""+id_col+"\" FROM "+table_name+" "+final_clause+";", [], "get_ids_by_clause") is
196 { 196 {
197 - error(_) then [], 197 + error(sql_error) then println("get_db_ids_by_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n id_col["+id_col+"]\nclause ["+clause+";]");[],
  198 + ok(_, cursor, _) then db_get_List_DB_id(cursor)
  199 + }
  200 +.
  201 +
  202 +public define List(DB_id)
  203 + get_db_ids_by_full_clause
  204 + (
  205 + SQLite3DataBase db,
  206 + String table_name,
  207 + String id_col,
  208 + String full_clause
  209 + )=
  210 +
  211 + if sql_query_timeout(db, "SELECT \""+id_col+"\" FROM "+table_name+" "+full_clause+";", [], "get_db_ids_by_full_clause") is
  212 + {
  213 + error(sql_error) then println("get_db_ids_by_full_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n id_col["+id_col+"]\nfull_clause ["+full_clause+";]");[],
198 ok(_, cursor, _) then db_get_List_DB_id(cursor) 214 ok(_, cursor, _) then db_get_List_DB_id(cursor)
199 } 215 }
200 . 216 .
@@ -356,6 +372,23 @@ public define (One -> SQLite3Row table_cursor) -> List($T) @@ -356,6 +372,23 @@ public define (One -> SQLite3Row table_cursor) -> List($T)
356 real_get(cursor, []) 372 real_get(cursor, [])
357 . 373 .
358 374
  375 +public define List($T)
  376 + get_all_by_full_clause
  377 + (
  378 + SQLite3DataBase db,
  379 + String table_name,
  380 + String id_col,
  381 + String full_clause,
  382 + (One -> SQLite3Row table_cursor) -> Maybe($T) extractor
  383 + )=
  384 +
  385 + if sql_query_timeout(db, "SELECT * FROM "+table_name+" "+full_clause+";", [], "get_all_by_full_clause") is
  386 + {
  387 + error(sql_error) then println("get_db_ids_by_full_clause SQL ERROR '"+ sql_error.text + "'\n table_name ["+table_name+"]\n id_col["+id_col+"]\nfull_clause ["+full_clause+";]");[],
  388 + ok(_, cursor, _) then _get_all(extractor)(cursor, [])
  389 + }
  390 +.
  391 +
359 public define (String, String, String, String) -> List($T) 392 public define (String, String, String, String) -> List($T)
360 call_back_get_all_by_clause 393 call_back_get_all_by_clause
361 ( 394 (