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

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

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

Сообщение zigorzn » 17 апр 2008, 13:35

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 вещественное разделитель "," , а должно быть "."!!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 апр 2008, 15:18

интересно, почему с FB 2 надо использовать isql от IB 5.5, которая понимает только 1-ый диалект?

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 17 апр 2008, 16:55

не в клиенте дело. процедура на сервере "собирает" строку. и происходит облом при вызове execute statement.

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 апр 2008, 17:07

Ещё и ES тут...
В процедуру передаётся именно double precision или уже строка?

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 17 апр 2008, 17:14

все происходит внутри

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 апр 2008, 18:19

ты пример человеческий можешь привести? или мне топик можно удалить? :)

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 апр 2008, 18:39

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

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 17 апр 2008, 19:04

пример: есть таблица 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'

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 17 апр 2008, 19:06

повторюсь:
под win32 работает. проблема под linux

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 17 апр 2008, 19:10

напряг админов - локализацию изменили - заработало

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 апр 2008, 08:51

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

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 18 апр 2008, 09:42

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

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 апр 2008, 11:11

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

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

zigorzn
Сообщения: 27
Зарегистрирован: 03 фев 2008, 09:16

Сообщение zigorzn » 18 апр 2008, 11:35

то что сервер не может теоретически я и сам знаю, а то что произошло это факт.

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 18 апр 2008, 11:57

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 апр 2008, 12:19

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

Ответить