/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 17/03/2017 * Time: 00:11 * © David RENÉ */ read tools/basis.anubis read system/string.anubis public type SQLite3_update_field: field(String column, SQLite3Bind bind). public define (List(SQLite3Bind), String) _make_update_clause_and_binds ( List(SQLite3_update_field) fields, List(SQLite3Bind) so_far, List(String) set_clause )= if fields is { [] then (so_far, join(", ",set_clause)), [ h . t ] then if h is field(column, bind) then _make_update_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . set_clause]) } . public define (List(SQLite3Bind), String) make_update_clause_and_binds ( List(SQLite3_update_field) fields )= _make_update_clause_and_binds(fields, [], []) . public define (List(SQLite3Bind), String, String) _make_insert_clause_and_binds ( List(SQLite3_update_field) fields, List(SQLite3Bind) so_far, List(String) insert_columns, List(String) insert_values )= if fields is { [] then (so_far, "("+join(", ",insert_columns)+")", "("+join(", ",insert_values)+")"), [ h . t ] then if h is field(column, bind) then _make_insert_clause_and_binds(t, [bind . so_far], ["\""+column+"\"" . insert_columns], [":v_"+column . insert_values]) } . public define (List(SQLite3Bind), String, String) make_insert_clause_and_binds ( List(SQLite3_update_field) fields )= _make_insert_clause_and_binds(fields, [], [], []) .