Обсуждение: BUG #12878: Update fails with ODBC driver 9.0.3.400

Поиск
Список
Период
Сортировка

BUG #12878: Update fails with ODBC driver 9.0.3.400

От
Ralph Stefan
Дата:

To Whom It May Concern:

Jaime Soler asked me to forward this to you. Any help would be greatly appreciated. I found the reports about extra_float_digits and that doesn’t seem to fix this problem.

Regards,

Ralph Stefan

 

The following bug has been logged on the website:

 

Bug reference:      12878

Logged by:          Ralph Stefan

Email address:      rstefan@perceptron.com

PostgreSQL version: 9.2.10

Operating system:   Windows 7

Description:        

 

I have a problem with the 9.0.3.400 ODBC driver. Using a C++ client using CRecordSet, the update method fails. The ODBC driver is now expanding a double to 17 or 18 digits of precision. In version 9.0.3.300 and lower, it only expanded it to 16 digits of precision. Here is the SQL log for an update in version 9.0.3.300:

 

UPDATE SP_MEMS_LIGHTSOURCE_OPTIONS SET

start_x='-0.0819098162202559',start_y='-0.288030017956869',end_x='0.0959545102741697',end_y='0.270450291244762',number_of_lines=10,cycle_time=480,exposure=5946,min_clipz='-20',max_clipz='20',min_exposure=500,max_exposure=10000

WHERE "options_id" = 10009 AND "lightsource_order" = 0 AND "surface_id" =

10007 AND "lightsource_type" = 1 AND "pattern_type" = 0 AND "start_x" = '-0.28' AND "start_y" = '-0.32' AND "end_x" = '0.32' AND "end_y" = '0.26'

AND "number_of_lines" = 20 AND "cycle_time" = 800 AND "samples_per_second" =

50000 AND "horizontal_speed" = 0 AND "vertical_speed" = 0 AND "scan_rate" =

25 AND "exposure" = 6196 AND "gain" = 3 AND "mode" = 1 AND "continuous" = 0 AND "disable_interpolation" = 0 AND "disable_filter" = 0 AND "min_clipz" = '-50' AND "max_clipz" = '50' AND "rotation" = '0' AND "algorithm" = 2 AND "min_exposure" = 0 AND "max_exposure" = 0 AND "laser_modulation" = 0 AND "allow_updates" = 1

 

Here is the same update in 9.0.3.400

 

UPDATE SP_MEMS_LIGHTSOURCE_OPTIONS SET

start_x='-0.081909816220255879',start_y='-0.288030017956869',end_x='0.09595451027416968',end_y='0.27045029124476166',number_of_lines=10,cycle_time=480,exposure=5946,min_clipz='-20',max_clipz='20',min_exposure=500,max_exposure=10000

WHERE "options_id" = 10019 AND "lightsource_order" = 0 AND "surface_id" =

10017 AND "lightsource_type" = 1 AND "pattern_type" = 0 AND "start_x" = '-0.28000000000000003' AND "start_y" = '-0.32000000000000001' AND "end_x" = '0.32000000000000001' AND "end_y" = '0.26000000000000001' AND "number_of_lines" = 20 AND "cycle_time" = 800 AND "samples_per_second" =

50000 AND "horizontal_speed" = 0 AND "vertical_speed" = 0 AND "scan_rate" =

25 AND "exposure" = 6196 AND "gain" = 3 AND "mode" = 1 AND "continuous" = 0 AND "disable_interpolation" = 0 AND "disable_filter" = 0 AND "min_clipz" = '-50' AND "max_clipz" = '50' AND "rotation" = '0' AND "algorithm" = 2 AND "min_exposure" = 0 AND "max_exposure" = 0 AND "laser_modulation" = 0 AND "allow_updates" = 1

 

With the additional garbage digit of precision, the update now fails.