Re: mx.ODBC error: Invalid Descriptor Index

"M.-A. Lemburg" <[email protected]>
Newsgroups gmane.comp.python.egenix.user
Organization eGenix.com Software GmbH; http://www.egenix.com/
Message-ID <[email protected]>
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/


_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.