Commit 190a0eb4f8777737be201428d816c7d700a4c3df
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
Showing
3 changed files
with
40 additions
and
3 deletions
Show diff stats
hayamiki_lib @ 6ad846b4dc7
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 | { | ... | ... |