/// <summary>
 /// Adds a UPDATE statement with specified columns and values
 /// </summary>
 /// <returns>The values.</returns>
 /// <param name="tableName">Table name.</param>
 /// <param name="values">Values.</param>
 public abstract QueryBuilder UpdateValues(string tableName, DataParameter[] values);
 /// <summary>
 /// Builds an UPDATE query
 /// </summary>
 /// <param name="tableName">Table name.</param>
 /// <param name="values">Values.</param>
 /// <param name="clause">Clause.</param>
 public virtual QueryBuilder Update(string tableName, DataParameter[] values, params WhereFilter[] clause)
 {
     if (null == clause || clause.Length == 0)
         return this.UpdateValues(tableName, values);
     return this.UpdateValues(tableName, values).Where(clause);
 }