Commit d9ac8325455d22ac1007cd3977434ebd6c320bc9

Authored by totoro
1 parent 8dafff85

generate function for getting list of rows with given clause

Showing 2 changed files with 34 additions and 2 deletions   Show diff stats
src/generation/files.anubis
... ... @@ -54,6 +54,7 @@ define Maybe(One)
54 54 if generate_extract_web_arg(strm, table) is { failure then failure, success(_) then
55 55 if generate_extract_db_cursor(strm, table) is { failure then failure, success(_) then
56 56 if generate_get_all(strm, table) is { failure then failure, success(_) then
  57 + if generate_get_all_with_clause(strm, table)is { failure then failure, success(_) then
57 58 if generate_get_one(strm, table) is { failure then failure, success(_) then
58 59 if generate_get_one_with_clause(strm, table)is { failure then failure, success(_) then
59 60 if generate_update(strm, table) is { failure then failure, success(_) then
... ... @@ -63,7 +64,7 @@ define Maybe(One)
63 64 if generate_choices_selector(strm, table) is { failure then failure, success(_) then
64 65 if generate_VT_all_view(strm, table) is { failure then failure, success(_) then
65 66 if generate_VT_all_edit(strm, table) is { failure then failure, success(_) then
66   - success(unique)}}}}}}}}}}}}}}}
  67 + success(unique)}}}}}}}}}}}}}}}}
67 68 }.
68 69  
69 70 define One
... ...
src/generation/types.anubis
... ... @@ -204,6 +204,37 @@ public define Maybe(One)
204 204 " {\n"+
205 205 " error(_) then [],\n"+
206 206 " ok(_, cursor, _) then _get_all_"+name+"(cursor, [])\n"+
  207 + " }.\n"+
  208 + "\n\n"
  209 + ) is //end of the function
  210 + {
  211 + failure then println("can't write generate_get_all "+type_name); failure,
  212 + success(_) then success(unique)
  213 + }.
  214 +
  215 +public define Maybe(One)
  216 + generate_get_all_with_clause
  217 + (
  218 + Stream stream,
  219 + HK_Table table
  220 + )=
  221 + since table is hk_table(name, short_name, model, _),
  222 + since model is hk_model(columns, _),
  223 + with type_name = to_upper(name, 1), //make the first character to upper case to able to be a Anubis Type.
  224 +
  225 + //generate the type of the table that contain all components
  226 + if write_string(stream,
  227 + //SQL query
  228 + "public define List("+type_name+")\n"+
  229 + " get_all_"+name+"_by_clause\n"+
  230 + " (\n"+
  231 + " SQLite3DataBase db,\n"+
  232 + " String clause\n"+
  233 + " )=\n"+
  234 + " if sql_query_timeout(db, \"SELECT "+join(", ", enclose("\\\"",to_List_String(columns, true)))+" FROM "+name+" WHERE \"+clause+\";\", [], \"get_all_"+name+"_by_clause\") is\n"+
  235 + " {\n"+
  236 + " error(_) then [],\n"+
  237 + " ok(_, cursor, _) then _get_all_"+name+"(cursor, [])\n"+
207 238 " }.\n"
208 239  
209 240 ) is //end of the function
... ... @@ -211,7 +242,7 @@ public define Maybe(One)
211 242 failure then println("can't write generate_get_all "+type_name); failure,
212 243 success(_) then success(unique)
213 244 }.
214   -
  245 +
215 246 public define Maybe(One)
216 247 generate_get_one
217 248 (
... ...