cx_Oracle, is anything selected?

Diez B. Roggisch deets at web.de
Tue Nov 1 14:23:34 CET 2005


> > I don't understand your problem - if your select doesn't return
> > anything, the fetch* methods on the cursor will tell you if there is any
> > data to expect at all. Additionally there is teh rowcount-property that
> > holds the number of rows the last execute* yielded.
>
> This is a simplification of the program
>
> c = db.cursor()
> while 1:
>     c.execute('select ....')
>     smtp = SMTP(MAIL_HOST, 25, 'localhost')
>     for address, subject, body in c:
>         smtp.sendmail(....)
>     smtp.quit()
>     time.sleep(60)
>
> now if the select doesn't return any rows, there's no need to connect to the
> mail server. I'd like to avoid that unnecessary step.
>
> c.rowcount will not give me the number of rows selected, it will only give
> me the number of rows already fetched.

then lazy-initialize the smpt object inside the loop. Or use c.fetchone
for the first entry, and loop over the remaining results.

Apart from that: what harm does the connection to the smpt do? If it
works - keep it that way.

Regards,

Diez




More information about the Python-list mailing list