[egenix-users] mx.ODBC error: Invalid Descriptor Index

M.-A. Lemburg mal at egenix.com
Thu Apr 15 22:31:47 CEST 2010


M.-A. Lemburg wrote:
> Alexandre Fayolle wrote:
>> Let me rephrase this. I was lazy, the call generating the exception was:
>>
>> datetime1= datetime.datetime(2010, 4, 15, 16, 51, 25, 468000)
>> datetime2 = datetime.datetime(2010, 4, 15, 16, 51, 25, 453000)
>> cursor.executedirect('UPDATE cw_CWUser SET cw_modification_date = ?,
>> cw_last_login_time = ? WHERE cw_eid = ?', (datetime1, datetime2, 5))
>>
>> The exception is  mx.ODBC.Error.DataError: ('22008', 0, '[Microsoft][SQL 
>> Server Native Client 10.0]Datetime field overflow. Fractional second precision 
>> exceeds the scale specified in the parameter binding.', 7748)
> 
> This explains why you are seeing the error: Python datetime
> instances use more than just 2 digits precision in their
> seconds string representation, i.e. more than what SQL Server
> expects when requesting timestamps as strings.
> 
> However, I wonder why SQL Server requests this data as string
> data, since it's well possible to use a native
> timestamp ODBC data structure for this, which also assures
> that full precision is maintained and no conversion takes place.
> 
> Could you try the above with cursor.execute() and see whether
> you still get the same error ?

Normalizing the datetime values to not use microseconds should
also solve the problem, even though that's not really
satisfactory.

Aside: SQL Server's DATETIME column type only has an accuracy
of 0.00333 seconds:

    http://msdn.microsoft.com/en-us/library/ms186724.aspx

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Apr 15 2010)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/



More information about the egenix-users mailing list