Commit 190a0eb4f8777737be201428d816c7d700a4c3df

Authored by totoro
1 parent 00507ef8

split the update function into 2 function one with the complete Type to update …

…and the second one with update fields from web args, which can construct the INSERT or UPDATE query with given fields only
hayamiki_lib @ 6ad846b4dc7
1 -Subproject commit 95ca2d08361e79df89c3c260ffa9bf05127aaf65 1 +Subproject commit 6ad846b4dc7ff3ab41cd33262dfe68e3de9c6952
src/generation/files.anubis
@@ -188,7 +188,7 @@ define One @@ -188,7 +188,7 @@ define One
188 with transmit = "transmit "+name+".anubis", 188 with transmit = "transmit "+name+".anubis",
189 with view = "vtm_view(\""+name+"\", get_viewable_"+name+")", 189 with view = "vtm_view(\""+name+"\", get_viewable_"+name+")",
190 with edit = "vtm_edit(\""+name+"\", get_editable_"+name+")", 190 with edit = "vtm_edit(\""+name+"\", get_editable_"+name+")",
191 - with writer = "tm_writer(\""+name+"\", update_"+name+")", 191 + with writer = "tm_writer(\""+name+"\", update_"+name+"_from_type, update_"+name+"_from_fields)",
192 with delete = "tm_delete(\""+name+"\", delete_"+name+")", 192 with delete = "tm_delete(\""+name+"\", delete_"+name+")",
193 _make_vtm(apps, t, [transmit . so_far_transmit], [view . so_far_view], [edit . so_far_edit], [writer . so_far_writer], [delete . so_far_delete], dest_dir) 193 _make_vtm(apps, t, [transmit . so_far_transmit], [view . so_far_view], [edit . so_far_edit], [writer . so_far_writer], [delete . so_far_delete], dest_dir)
194 }. 194 }.
src/generation/types.anubis
@@ -326,9 +326,37 @@ public define Maybe(One) @@ -326,9 +326,37 @@ public define Maybe(One)
326 " error(sql_error)\n"+ 326 " error(sql_error)\n"+
327 " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+ 327 " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+
328 " }.\n\n"+ 328 " }.\n\n"+
  329 +
329 "public define Maybe(One)\n"+ 330 "public define Maybe(One)\n"+
330 " update_"+name+"\n"+ 331 " update_"+name+"\n"+
331 " (\n"+ 332 " (\n"+
  333 + " SQLite3DataBase db,\n"+
  334 + " DB_id db_id,\n"+
  335 + " List(SQLite3_update_field) fields\n"+
  336 + " )=\n"+
  337 + " if db_id is\n"+
  338 + " {\n"+
  339 + //INSERT SQL query
  340 + " none then\n"+
  341 + " since make_insert_clause_and_binds(fields) is (binds, insert_columns, insert_values),\n"+
  342 + " if sql_query_timeout(db, \"INSERT INTO "+name+" \"+insert_columns+\" VALUES \"+insert_values+\";\", binds, \"update_"+name+" (INSERT)\") is\n"+
  343 + " {\n"+
  344 + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+
  345 + " ok(_, _, _) then success(unique)\n"+
  346 + " },\n"+
  347 + //UPDATE SQL query
  348 + " db_id(idx) then\n"+
  349 + " since make_update_clause_and_binds(fields) is (binds, set_string),\n"+
  350 + " if sql_query_timeout(db, \"UPDATE "+name+" SET \"+set_string +\" WHERE id = \"+idx+\";\", binds, \"update_"+name+" (UPDATE)\") is\n"+
  351 + " {\n"+
  352 + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+
  353 + " ok(_, _, _) then success(unique)\n"+
  354 + " }\n"+
  355 + " }.\n\n"+
  356 +
  357 + "public define Maybe(One)\n"+
  358 + " update_"+name+"_from_type\n"+
  359 + " (\n"+
332 " SQLite3DataBase db,\n"+ 360 " SQLite3DataBase db,\n"+
333 " List(Web_arg) lwa\n"+ 361 " List(Web_arg) lwa\n"+
334 " )=\n"+ 362 " )=\n"+
@@ -336,7 +364,16 @@ public define Maybe(One) @@ -336,7 +364,16 @@ public define Maybe(One)
336 " {\n"+ 364 " {\n"+
337 " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+ 365 " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+
338 " success("+name+") then success(update_"+name+"(db, "+name+"))\n"+ 366 " success("+name+") then success(update_"+name+"(db, "+name+"))\n"+
339 - " }.\n\n" 367 + " }.\n\n"+
  368 +
  369 + "public define Maybe(One)\n"+
  370 + " update_"+name+"_from_fields\n"+
  371 + " (\n"+
  372 + " SQLite3DataBase db,\n"+
  373 + " List(Web_arg) lwa\n"+
  374 + " )=\n"+
  375 + " update_"+name+"(db, get_DB_id(lwa, \"id\"),extract_"+type_name+"_update_fields_from_web_arg(lwa, \"\"))\n"+
  376 + ".\n\n"
340 377
341 ) is //end of the function 378 ) is //end of the function
342 { 379 {