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 188 with transmit = "transmit "+name+".anubis",
189 189 with view = "vtm_view(\""+name+"\", get_viewable_"+name+")",
190 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 192 with delete = "tm_delete(\""+name+"\", delete_"+name+")",
193 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 326 " error(sql_error)\n"+
327 327 " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+
328 328 " }.\n\n"+
  329 +
329 330 "public define Maybe(One)\n"+
330 331 " update_"+name+"\n"+
331 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 360 " SQLite3DataBase db,\n"+
333 361 " List(Web_arg) lwa\n"+
334 362 " )=\n"+
... ... @@ -336,7 +364,16 @@ public define Maybe(One)
336 364 " {\n"+
337 365 " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+
338 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 378 ) is //end of the function
342 379 {
... ...