Страница 1 из 1

ошибка при работе с double и строкой (v2.1)

Добавлено: 17 апр 2008, 13:35
zigorzn
ISQL Version: WI-V5.5.0.742
Firebird/linux Intel (access method), version "LI-V2.1.0.17798 Firebird 2.1"
Firebird/linux Intel (remote server), version "LI-V2.1.0.17798 Firebird 2.1/tcp (db.vn.meganet)/P10"
Firebird/x86/Windows NT (remote interface), version "WI-V2.0.3.12981 Firebird 2.0/tcp (ks01-tdm)/P10"
on disk structure version 11.0

след операция работает не верно dd||''
если dd вещественное разделитель "," , а должно быть "."!!

Добавлено: 17 апр 2008, 15:18
kdv
интересно, почему с FB 2 надо использовать isql от IB 5.5, которая понимает только 1-ый диалект?

Добавлено: 17 апр 2008, 16:55
zigorzn
не в клиенте дело. процедура на сервере "собирает" строку. и происходит облом при вызове execute statement.

пробовали под win32 - работает верно.

Добавлено: 17 апр 2008, 17:07
WildSery
Ещё и ES тут...
В процедуру передаётся именно double precision или уже строка?

Добавлено: 17 апр 2008, 17:14
zigorzn
все происходит внутри

Добавлено: 17 апр 2008, 18:19
kdv
ты пример человеческий можешь привести? или мне топик можно удалить? :)

Добавлено: 17 апр 2008, 18:39
Merlin
kdv писал(а):интересно, почему с FB 2 надо использовать isql от IB 5.5, которая понимает только 1-ый диалект?
Это WISQL, простая, надёжная и полностью контролируемая штучка без умничанья. Я с первым диалектом ею и работаю преимущественно.

Добавлено: 17 апр 2008, 19:04
zigorzn
пример: есть таблица TTTT с полем DD (DOUBLE PRECISION)
данные
1.00
2.00
3.00

select DD, DD||'ff'
from TTTT

результат
1.0000 '1,0000'
2.0000 '2,0000'
3.0000 '3,0000'

Добавлено: 17 апр 2008, 19:06
zigorzn
повторюсь:
под win32 работает. проблема под linux

Добавлено: 17 апр 2008, 19:10
zigorzn
напряг админов - локализацию изменили - заработало

Добавлено: 18 апр 2008, 08:51
kdv
напряг админов - локализацию изменили - заработало
гон. сервер не использует локаль в качестве разделилетей. На сервере для чисел в строке дробная часть всегда отделяется точкой. что из числа в строку, что обратно.

Добавлено: 18 апр 2008, 09:42
zigorzn
было вот что:
"при установке сервера была локаль украинская, ее сменили на utf-8, применилось ко всем, кроме птички. После ребута(первого с момента установки системы) сервера - все полечилось.
Симптом был как на 2.1 так и 2.0.3"

( дебиан, Linux 2.6.18-6-686 )

Добавлено: 18 апр 2008, 11:11
kdv
еще раз, для непонятливых. серверу FB локаль компа, на котором он установлен, ПО БАРАБАНУ.
Что вы там с локалями мудрили, это ваше личное дело. Да, локаль может влиять на приложения. Но не на FB.

сервер физически не может выдать double||'' с разделителем "запятая".

Добавлено: 18 апр 2008, 11:35
zigorzn
то что сервер не может теоретически я и сам знаю, а то что произошло это факт.

у меня с английским плохо, а то б я трекер занес. Дмитрий поможешь?

Добавлено: 18 апр 2008, 11:57
WildSery
zigorzn писал(а):у меня с английским плохо, а то б я трекер занес.
Дмитрий поможешь?
Позволю себе за него ответить.
Не раньше чем ты воспроизводимый пример напишешь. Потому что до сих пор читаем сказочки какие-то.

Добавлено: 18 апр 2008, 12:19
kdv
у меня с английским плохо, а то б я трекер занес. Дмитрий поможешь?
что я занесу в трекер? заносить-то нечего, по факту. Я могу только попросить разработчиков ткнуть тебя в код FB, где прописывается эта самая точка.
Или, могу посоветовать провести эксперимент - посмотри настройки системы. Потом, если разделитель десятичных знаков точка, поменяй на запятую. Перезапусти сервак на всякий случай. Выполни тот самый dd||''. И отпиши, что получится.