Package twisted :: Package flow :: Module threads :: Class QueryIterator
[frames | no frames]

Class QueryIterator


Converts a database query into a result iterator

from __future__         import generators
from twisted.enterprise import adbapi
from twisted.internet   import reactor
from twisted.flow import flow
from twisted.flow.threads import QueryIterator, Threaded

dbpool = adbapi.ConnectionPool("SomeDriver",host='localhost', 
             db='Database',user='User',passwd='Password')

# # I test with...
# from pyPgSQL import PgSQL
# dbpool = PgSQL
 
sql = '''
  (SELECT 'one')
UNION ALL
  (SELECT 'two')
UNION ALL
  (SELECT 'three')
'''
def consumer():
    print "executing"
    query = Threaded(QueryIterator(dbpool, sql))
    print "yielding"
    yield query
    print "done yeilding"
    for row in query:
        print "Processed result : ", row
        yield query

from twisted.internet import reactor
def finish(result): 
    print "Deferred Complete : ", result
    reactor.stop()
f = flow.Deferred(consumer())
f.addBoth(finish)
reactor.run()

Method Summary
  __init__(self, pool, sql, fetchmany, fetchall)
  __iter__(self)
  next(self)
  next_fetchall(self)
  next_fetchmany(self)

Generated by Epydoc 2.0 on Sat May 15 20:08:19 2004 http://epydoc.sf.net