:: Архив конференции по VFP до 2005 года
Ошибка, SQL сервер,FOX, формат чилса
Пашок
Автор

Сообщений: 706
Дата регистрации: 14.11.2001
Ну вообще, ничего не понимаю. Такую гадость нашел.


nl_test_my = 45.1234

cl_zapros = " select ?nl_test_my from repair_orders_details_temp where repair_orders =?thisform.cl_zn_nomer "

nl_error = SQLEXEC(np_connection, cl_zapros,"test" )

If nl_error < 0
sql_error()
Endif


brow

в результате появляется курсор с данными, где 2 знака после запятой с конца исчезло.
Такой вариант:
45,12


Ничего не понимаю, как это происходит ?




------------------
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
Syberex

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Цитата:
select ?nl_test_my from repair_orders_details_temp where repair_orders =?thisform.cl_zn_nomer
Что то с этим Select-om не так
Свойство из формы копируй в локальную переменную
Параметр в списке полей? А смысл? Зачем тогда такое условие ...




------------------
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
set decimal to 4
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
В пару к SET DECIMALS надо добавить

SET FIXED ON




------------------
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Или вместо SPT запроса делать вьюху в определнием форматов данных
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
Пашок
Автор

Сообщений: 706
Дата регистрации: 14.11.2001
Ну условие такое для теста. Но самое главное получается, когда я передавл курс с 4мя знаками после запятой, как параметр, то он откидывал 2 знака.




------------------
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
Пашок
Автор

Сообщений: 706
Дата регистрации: 14.11.2001
Да, помогло set decimal to 4, но вообще, это конечно западло )))))




------------------
Ratings: 0 negative/0 positive
Re: Ошибка, SQL сервер,FOX, формат чилса
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
2Пашок

Ну тогда вьюха с определением формата данных DBSetProp ....
Ratings: 0 negative/0 positive
Совсем не понятно
Пашок
Автор

Сообщений: 706
Дата регистрации: 14.11.2001
Вот еще хуже получилось, вообще получается неправильно считает.

SET DECIMALS TO 4

nl_aw = 1.9
nl_aw_rate = 2.675
nl_rate = 36.6843


cl_zapros = " select ROUND( ROUND(?nl_aw * ?nl_aw_rate * ?nl_rate,2) * 0.1 ,2) from currency "

nl_error = SQLEXEC(np_connection, cl_zapros,"test" )

If nl_error < 0
sql_error()
Endif
brow

сервер выдает 18,64 , а если правильно все умножить и округлить то получается 18,65 ,вот формула из Excel, как доказательство =ROUND(ROUND(1.9*2.675*36.6843;2) * 0.1;2)




------------------
Ratings: 0 negative/0 positive
Re: Совсем не понятно
Перминов Игорь

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
Вся фишка в ROUND(?nl_aw * ?nl_aw_rate * ?nl_rate, 2)
Поиграй от 2 до 4




------------------
Без коментариев..
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика