title: String parameters in pyodbc
body: <p>I'm recreating data that's stored in format that's rather difficult to access.  Most of the data has successfully been moved and converted.  This Python script is meant to identify the parent of each object against the old database and update it's parent (currently null) in the new database.</p>
  
  <p>I have:</p>
  
  <pre><code># skip the Alpha
  for x in range(2, i+1):
      on_level = 'ORG_LEVEL' + str(x)
      parent_level =  'ORG_LEVEL' + str(x-1)
  
      cur.execute('''SELECT ?, ?
                          FROM OsuOrgs
                          WHERE ORG_LEVEL= ? ''', 
                          [ on_level, parent_level, x ])
  
      for row in cur.fetchall():
          members.append( { "unv_id":str(row[0]), "parent":str(row[1]) } )
  
  for member in members:
      print(member)
  </code></pre>
  
  <p>The problem I'm running into is that my members[] object is being filled with the litteral value of on_level and parent_level.  My assumption is that is related to how pyodbc is passing the arguments, but I'm a bit stumped as why exactly it's happening.</p>
  
  <p>Example:</p>
  
  <pre><code>{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  {'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
  </code></pre>