db_update_fields.anubis 1.04 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 17/03/2017
 * Time: 00:11
 * © Calexium 
 */


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)                clause
  )=
  if fields is
  {
    []        then (so_far, join(", ",clause)),
    [ h . t ] then
      if h is field(column, bind) then
        make_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . clause])
  }
.

public define (List(SQLite3Bind), String)
  make_insert_clause_and_binds
  (
    List(SQLite3_update_field)  fields,
    List(SQLite3Bind)           so_far,
    List(String)                clause
  )=
  if fields is
  {
    []        then (so_far, join(", ",clause)),
    [ h . t ] then
      if h is field(column, bind) then
        make_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . clause])
  }
.