|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Я так понимаю, что сейчас NUMERIC поля отображаются как Double. В результате для поля типа NUMERIC(3,1) я вижу значение типа 12.300000000002. Нельзя ли при выводе обрезать строку до стольки знаков, сколько указано в типе? С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 19:39 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Я так понимаю, что сейчас NUMERIC поля отображаются как Double. В результате для поля типа NUMERIC(3,1) я вижу значение типа 12.300000000002. Нельзя ли при выводе обрезать строку до стольки знаков, сколько указано в типе? Где видишь-то? В настройках форматирования данных указано "использовать масштаб поля"? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 04:49 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Где видишь-то? IBExpert В настройках форматирования данных указано "использовать масштаб поля"? И параллельный вопрос: нельзя ли в настройку вынести DecimalSeparator или хотя бы всегда использовать точку? Очень не удобно копировать значение поля в параметр запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 10:43 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Вижу при переводе грида в режим редактирования (поле объявлено как NUMERIC(18,6)) При редактировании формат с максимальной точностью используется. В данный момент я не уверен, что будет правильно это менять. _Vasilisk_ И параллельный вопрос: нельзя ли в настройку вынести DecimalSeparator или хотя бы всегда использовать точку? Очень не удобно копировать значение поля в параметр запроса В свежей версии выполни Код: pascal 1.
в event block'е, например, который после старта эксперта выполняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2020, 15:51 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert В свежей версии выполни ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 13:03 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert При редактировании формат с максимальной точностью используется. В данный момент я не уверен, что будет правильно это менять. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 13:23 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert В свежей версии выполни Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 16:26 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ После запуска все замечательно. Но в какой-то момент настройка слетает и опять начинает отображаться системный разделитель Нужно попытаться определить, что это за момент, или хотя бы после чего. Иначе я до второго пришествия могу искать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 16:41 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Иначе я до второго пришествия могу искать ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 17:53 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Но в какой-то момент настройка слетает Код: sql 1.
по прежнему возвращает точку. Может ты мне какую-нибудь Debug версию сделаешь с логами? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 19:24 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Оставь сейчас эту переменную в покое. При ее установке просто изменяется SysUtils.DecimalSeparator. И если потом кто-то где-то (включая сторонние компоненты) зачем-то меняет SysUtils.DecimalSeparator опять - на значении IBE$DECIMAL_SEPARATOR это никак не отразится. Ну и, соответственно, протоколирование тут не поможет. Вспоминай, что ты делал перед тем, как разделитель обратно к системному вернулся. Может, данные экспортировал. Может, еще что-то. Короче, нужен способ воспроизвести ситуацию. Поиском по коду я уже проверил и ничего не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2020, 04:49 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Вспоминай, что ты делал перед тем, как разделитель обратно к системному вернулся ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2020, 17:16 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Ага, я недавно точно такой же глюк в приложении из-за TJvAppEvents отловил. Ну, мало ли... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2020, 21:28 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert И если потом кто-то где-то (включая сторонние компоненты) зачем-то меняет SysUtils.DecimalSeparator опять - на значении IBE$DECIMAL_SEPARATOR это никак не отразится. Код: pascal 1.
? Такое ощущение, что разделитель меняется просто со временем ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 17:41 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Application.UpdateFormatSettings := False; [/src]? Такое ощущение, что разделитель меняется просто со временем Не понял, при чем тут Application.UpdateFormatSettings? Разделитель - это просто переменная в SysUtils. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 05:47 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Не понял, при чем тут Application.UpdateFormatSettings? Разделитель - это просто переменная в SysUtils. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:49 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_, Добавить, а если вдруг и после этого будут сбиваться, то проверять его значение. У меня как раз сторонняя компонента его обратно выставляла в True, после чего и слетали эти переменные на дефолтные. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:57 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ При том, что система может рассылать броадкастом WM_WININICHANGE, который приводит к переинициализации системных разделителей. Ну, ОК. Посмотрел я всю эту требуху. Запрещать UpdateFormatSettings я не буду - это неправильно. Тем более, что саму GetFormatSettings может дернуть кто угодно и когда угодно. Правильным решением было бы восстанавливать пользовательские разделители после каждого вызова GetFormatSettings, но я пока не придумал, как это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 13:06 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Правильным решением ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 13:49 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Правильным-то решением как раз было бы не использовать собственный разделитель от слова "вообще". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 14:04 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Ну, если честно, то правильным решением было бы использование TField.OnGetData/TField.OnSetData с вызовом внутри FormatFloat/ParseFloat с собственными разделителями. В твоем случае, когда запятую надо заменить на точку только для того, чтобы в текст запроса вставить без лишних правок, правильного решения, похоже, вообще нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 07:10 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Подниму тему. В isql пишу Код: sql 1.
Получаю Код: plaintext 1. 2.
А основная проблема в том, что я не могу отредактировать из-за этого запись в обновляемом представлении. У меня в исходной таблице число записано в строковом поле, в представлении я его преобразовываю в NUMERIC Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
а потом BEFORE UPDATE триггер не может найти эту запись Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну и чтобы два раза не вставать. При отображении в гриде разряды разделяются пробелами. Это хорошо. А вот при редактировании ячейки раньше эти пробелы удалялись, а теперь остаются. В итоге запись невозможно отредактировать, пока не уберешь эти пробелы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 16:02 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ Подниму тему. У меня есть альтернативная версия датасета, где подобные нумерики хранятся как int64, а не переводятся в double. Там таких проблем нет, но я не уверен, что не сломал в процессе переделки что-то еще. Починят сервер - выложу отдельно, наверное. Или обычный билд с ней соберу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 09:44 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_, Попробуй свежую версию. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 07:52 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Попробуй свежую версию. _Vasilisk_ Пишу этот же запрос в SQL Editor. Получаю999 999 999 999.000122 _Vasilisk_ а потом BEFORE UPDATE триггер не может найти эту запись _Vasilisk_ При отображении в гриде разряды разделяются пробелами. Это хорошо. А вот при редактировании ячейки раньше эти пробелы удалялись, а теперь остаются Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2021, 22:40 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
_Vasilisk_ _Vasilisk_ Пишу этот же запрос в SQL Editor. Получаюпропущено... Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2022, 11:22 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
IBExpert Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2022, 21:30 |
|
Отобаражение NUMERIC полей
|
|||
---|---|---|---|
#18+
Добавлю в тему. Numeric меньше единицы, с количеством знаков после запятой более 4 и нулями в первых разрядах после запятой отображается с сдвигом влево до первого ненулевого знака: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Проблема впервые выявлена на версии 2022.1.1.1. В последней скаченной 2022.1.30.1 также присутствует. Сервер LI-V2.5.9.27139 Firebird 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 11:47 |
|
|
start [/forum/topic.php?all=1&fid=42&tid=1598407]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 241ms |
total: | 418ms |
0 / 0 |