Hi,
I have to dump some data from various databases (Oracle and Postgre, at the 
moment) into CSV files, while preserving the column type information so the 
data can be correctly loaded into another application.  Basically, I need to 
write a function that can distinguish string/numeric data in the columnar data 
from a cursor object in a fashion that's independent of the particular DBAPI 
module in use.

According to PEP-0249, each DBAPI module has to define type objects (e.g. 
module.STRING) which "must compare equal to" the type objects in the cursor 
object for each column.

The problem I'm having is... how can I figure out what are the appropriate 
type objects for this comparison if I *only* have access to the cursor object? 
I've been using an ugly kludge so far, to get a handle on the right DBAPI 
module:

    mod = sys.modules[cur.connection.__class__.__module__] #FIXME!
    if cur.description[0][1] == mod.STRING:
        print "first column is STRING data type"

Is there a more robust and elegant solution to this?  It seems like there 
ought to be a module-independent way to introspect the column data types in 
the cursor object.

Thanks,
Dan Lenski

_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to