Problem with inserting dates using mx.ODBC.Windows driver

Fons Dijkstra fdij at oce.nl
Thu Jul 31 12:30:55 EDT 2003


Hello,

I'm using the mx.ODBC.Windows package in order to read/write a MSAccess
database. Everything works fine apart from the DATE format handling. I'm
using the default "datetimeformat" (i.e. DATETIME_DATETIMEFORMAT) as
suggested. The date columns in the MSAccess database have "Short Date"
format.

When I read a DATE item everything works fine, like:

>>> conn = mx.ODBC.Windows.connect(database)
>>> cursor = conn.cursor()
>>> cursor.execute("SELECT * FROM table")
>>> data = cursor.fetchall()
>>> print data
[(..., <DateTime object for '2003-07-31 00:00:00.00 at address>, ...)]

But when I try to update the table I get a ProgrammingError, like:

>>> date = mx.ODBC.Windows.Date(2003, 07, 31)
>>> conn = mx.ODBC.Windows.connect(database)
>>> cursor = conn.cursor()
>>> cursor.execute("INSERT INTO table (..., DATE, ...) VALUES (..., ?,
...)", (..., date, ...))
ProgrammingError: Syntax Error in INSERT INTO statement.

Is it possible to use the mx.DateTime type for MSAccess databases? If so,
how should it be done? If not, how can I insert dates into a MSAccess
database?

Thank you in advance, Fons






More information about the Python-list mailing list