ADOdbapi converting all data to strings

Robert Brewer fumanchu at amor.org
Mon Aug 16 02:17:56 EDT 2004


max wrote:
> I am trying to access a foxpro database, using odbc all is well except
> that dates prior to 1970 are not returned as valid usable data, so
> would like to use ADO. When I select data containing numbers (long or
> float) they are converted and returned as unicode strings. Dates are
> returned as datetime.date which is great. Is there any way to change
> this behavior other than to explicitly change back all fields using
> cursor.description information.

I *think* you're saying that you have a COM date (which is similar to a
float), and want a datetime.date.


import datetime
# 12/30/1899, the zero-Date for ADO = 693594
zeroDate = datetime.date(1899, 12, 30).toordinal()

def coerce_datetime(value):
    return datetime.date.fromordinal(int(float(value)) + zeroDate)


COM times are more complicated. Inquire further if you need to handle
them.


Robert Brewer
MIS
Amor Ministries
fumamchu at amor.org



More information about the Python-list mailing list