Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Помогите побороть глюк


Автор: kulibin 9.2.2006, 16:57
Странный глюк в программе происходит на немецкой локали(на русской всё нормально работает). Думаю происходит фигня в этом месте:
Код

UPDATE 
(SELECT pos,tovar,kvo,AddKvo  FROM zpos 
INNER JOIN 
(SELECT tovar as rTov, rec,( kvo*10-kvo*0)  as AddKvo 
from tov_rec 
WHERE rec='1cc') as t1 ON zpos.tovar=t1.rTov 
WHERE  idz=36) as t2 
SET kvo=kvo+AddKvo

Этот запрос программа формирует в процессе - тут он уже готовый.
Суть прикола в том, что при умножении дробного числа на целое происходит понимание дробного числа как целого. Т.е. разделитель целой и дробной части игнорируется.
Подскажите плз как явно задать тип данных currency - шото я запамятовал smile
Хотя не понимаю я этого прикола - ведь в базе то задан этот тип данных - а какого же он его обезображивает? Это что-то в локали немецкой. Разделитель разрядов вроде тоже зпт. Да и даже если бы и нет - какая разница? Ведь всё делается в SQL-инструкции - т.е. должен браться тип данных как описано в таблице бд.
Кто-то может мне объяснить чего оно выёживается? И может найдётся человек, работавший с немецкой локалью? Может там ещё какие нюансы есть? Буду очень благодарен.
Вероятность того, что ноги у этого жука ростут не из этого места ничтожно мала. Хотя полностью исключать её и нельзя. Надо пробовать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)