anchor.diff:  delete(Table,KeyField,ID) ->
       db:q(["delete from ",Table," where ",KeyField,"=?"],[ID]).
   
  -%%% Prepares a query with Parameters %%%%%%%%%%
  +-spec q_prep(Q :: sql(), ParamList :: [value()]) -> sql().
  +%% @doc Prepares a query with Parameters, replacing all question marks with the
  +%% values provided in ParamList.  Returns the newly generated SQL statement as
  +%% an iolist
   q_prep(Q,[]) ->
       Q;
   q_prep(Q,ParamList) ->
  
positive.code: to_bool(undefined) ->   false;
  to_bool(_) ->       true.
  
  offset(PerPage, Page) when Page =< 0 ->
      offset(PerPage, 1);
  offset(PerPage, Page) when PerPage < 1 ->
  
negative.code:         _ -> true
      end.
  
  -spec field(Table :: table(), Field :: field(), IDField :: field(), IDValue :: value()) -> value() | not_found.
  %% @doc retrieves the value of Field from Table where the value of IDField ==
  %% IDValue (e.g.: Select 'Field' from 'Table' where 'IDField'='IDValue'). If
  %% the query returns more than one record, only the first record's value is
  %% returned.
  field(Table,Field,IDField,IDValue) when is_atom(Table) ->
      field(atom_to_list(Table),Field,IDField,IDValue);
  field(Table,Field,IDField,IDValue) when is_atom(Field) ->
  