diff --git a/hayamiki_lib b/hayamiki_lib index 95ca2d0..6ad846b 160000 --- a/hayamiki_lib +++ b/hayamiki_lib @@ -1 +1 @@ -Subproject commit 95ca2d08361e79df89c3c260ffa9bf05127aaf65 +Subproject commit 6ad846b4dc7ff3ab41cd33262dfe68e3de9c6952 diff --git a/src/generation/files.anubis b/src/generation/files.anubis index 8d5637b..8a41fd6 100644 --- a/src/generation/files.anubis +++ b/src/generation/files.anubis @@ -188,7 +188,7 @@ define One with transmit = "transmit "+name+".anubis", with view = "vtm_view(\""+name+"\", get_viewable_"+name+")", with edit = "vtm_edit(\""+name+"\", get_editable_"+name+")", - with writer = "tm_writer(\""+name+"\", update_"+name+")", + with writer = "tm_writer(\""+name+"\", update_"+name+"_from_type, update_"+name+"_from_fields)", with delete = "tm_delete(\""+name+"\", delete_"+name+")", _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) }. diff --git a/src/generation/types.anubis b/src/generation/types.anubis index c5701c2..3cc7d37 100644 --- a/src/generation/types.anubis +++ b/src/generation/types.anubis @@ -326,9 +326,37 @@ public define Maybe(One) " error(sql_error)\n"+ " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+ " }.\n\n"+ + "public define Maybe(One)\n"+ " update_"+name+"\n"+ " (\n"+ + " SQLite3DataBase db,\n"+ + " DB_id db_id,\n"+ + " List(SQLite3_update_field) fields\n"+ + " )=\n"+ + " if db_id is\n"+ + " {\n"+ + //INSERT SQL query + " none then\n"+ + " since make_insert_clause_and_binds(fields) is (binds, insert_columns, insert_values),\n"+ + " if sql_query_timeout(db, \"INSERT INTO "+name+" \"+insert_columns+\" VALUES \"+insert_values+\";\", binds, \"update_"+name+" (INSERT)\") is\n"+ + " {\n"+ + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+ + " ok(_, _, _) then success(unique)\n"+ + " },\n"+ + //UPDATE SQL query + " db_id(idx) then\n"+ + " since make_update_clause_and_binds(fields) is (binds, set_string),\n"+ + " if sql_query_timeout(db, \"UPDATE "+name+" SET \"+set_string +\" WHERE id = \"+idx+\";\", binds, \"update_"+name+" (UPDATE)\") is\n"+ + " {\n"+ + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+ + " ok(_, _, _) then success(unique)\n"+ + " }\n"+ + " }.\n\n"+ + + "public define Maybe(One)\n"+ + " update_"+name+"_from_type\n"+ + " (\n"+ " SQLite3DataBase db,\n"+ " List(Web_arg) lwa\n"+ " )=\n"+ @@ -336,7 +364,16 @@ public define Maybe(One) " {\n"+ " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+ " success("+name+") then success(update_"+name+"(db, "+name+"))\n"+ - " }.\n\n" + " }.\n\n"+ + + "public define Maybe(One)\n"+ + " update_"+name+"_from_fields\n"+ + " (\n"+ + " SQLite3DataBase db,\n"+ + " List(Web_arg) lwa\n"+ + " )=\n"+ + " update_"+name+"(db, get_DB_id(lwa, \"id\"),extract_"+type_name+"_update_fields_from_web_arg(lwa, \"\"))\n"+ + ".\n\n" ) is //end of the function { -- libgit2 0.21.4