Iterating Over Results

This example shows best practices for iterating over results.

Setup

Create a connection to a Vertica database, and open a cursor:

>>> import vertica_db_client
>>> db = vertica_db_client.connect("host=myhost.example.com database=mydb port=5433 user=dbadmin")
>>> cur = db.cursor()

Use an If Statement

Execute a query:

>>> cur.execute("SELECT * FROM foo ORDER BY numbs ASC")

Iterate over the query results using an If statement:

>>> if cur.rowcount == 0:
...     print('No rows to return!')
... else:
...     rows = cur.fetchall()
...     for i, row in enumerate(rows):
...             print row
...
(1, 'brew')
(1, 'casey')
(2, 'bianca')
(3, 'brian')
(4, 'bob')

Use Try Except

Execute a query:

>>> cur.execute("SELECT * FROM foo ORDER BY numbs ASC")

Iterate over the query results using Try Except:

>>> try:
...     rows = cur.fetchall()
...     for i, row in enumerate(rows):
...             print row
... except vertica_db_client.ProgrammingError:
...     print('No rows to return!')
...
(1, 'brew')
(1, 'casey')
(2, 'bianca')
(3, 'brian')
(4, 'bob')