[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