title: Python -- list index out of range -- on a simple SELECT statement?
body: <p>I'm new to Python, so maybe I'm making a newbie mistake.  But this doesn't seem the kind of error I should get in this circumstance.</p>
  
  <p>On a very simple SELECT statement, I'm getting a "list index out of range" error.</p>
  
  <pre><code>  sql = """
          begin tran
          -- Several update statements are in this block.
  
          commit tran"""
      sql = sql.format(tablename=self.tablename, **self.mappings)
      #print(sql)
      self.cursor.execute(sql, (self.catalog_id,self.catalog_id,self.catalog_id,))
  
  
      self.cursor.execute("SELECT CaptionText, DisplayOrder FROM dbo.SizeOrder where CaptionText is not NULL and len(CaptionText)&gt;0")  #This is the line that breaks!
  
      size_order = {row[0].lower(): row[1] for row in self.cursor}
  </code></pre>
  
  <p>It's the next to last row that breaks.  It's not doing any funny formatting.  I don't do any of the substitutions in this problem query. When run directly against the DB, it returns over 300 records.</p>
  
  <p>The trace output definitely implicates that line of code.  I really suspected the next line b/c it involves indexes.  But a return after the execute helped nothing.</p>
  
  <pre><code>    Traceback (most recent call last):
    File "import.py", line 782, in &lt;module&gt;
      main(sys.argv)
    File "import.py", line 167, in main
      db.transform_catalog((len(args)&gt;4 and args[4] == "--skipimages") or (len(args)&gt;5 and args[5] == "--skipimages") )
    File "import.py", line 235, in transform_catalog
      self.do_transform(skipImages)
    File "import.py", line 264, in do_transform
      self.insert_size_types()
    File "import.py", line 501, in insert_size_types
      self.cursor.execute("SELECT CaptionText, DisplayOrder FROM dbo.SizeOrder  where CaptionText is not NULL and len(Capt
  ionText)&gt;0")
    File "C:\Python33\lib\site-packages\pypyodbc.py", line 1449, in execute
      self._free_stmt(SQL_CLOSE)
    File "C:\Python33\lib\site-packages\pypyodbc.py", line 1971, in _free_stmt
      check_success(self, ret)
    File "C:\Python33\lib\site-packages\pypyodbc.py", line 986, in check_success
      ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
    File "C:\Python33\lib\site-packages\pypyodbc.py", line 951, in ctrl_err
      state = err_list[0][0]
  IndexError: list index out of range
  </code></pre>
  
  <p>What could I be doing wrong?  Thanks!</p>