title: Problem with SQLite executemany
body: <p>I can't find my error in the following code. When it is run a type error is given for line: <em>cur.executemany(sql  % itr.next())</em>  => '<strong>function takes exactly 2 arguments (1 given)</strong>,</p>
  
  <pre><code>import sqlite3
  con = sqlite3.connect('test.sqlite')
  cur = con.cursor()
  cur.execute("create table IF NOT EXISTS fred (dat)")
  
  def newSave(className, fields, objData):
      sets = []
      itr = iter(objData)
      if len(fields) == 1:
          sets.append( ':' + fields[0])
      else:
          for name in fields:
              sets.append( ':' +  name)
      if len(sets)== 1:
          colNames = sets[0]
      else:
          colNames = ', '.join(sets)
      sql = " '''insert into %s (%s) values(%%s)'''," % (className, colNames)
      print itr.next()
      cur.executemany(sql  % itr.next())
      con.commit()
  
  if __name__=='__main__':
      newSave('fred', ['dat'], [{'dat':1}, {'dat':2}, { 'dat':3}, {'dat':4}])
  </code></pre>
  
  <p>I would appreciate your thoughts.</p>