|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
Теряется дробная часть при вставке дробного числа из триггера19.04.2017, 18:06. Показов 5805. Ответов 11
Метки нет (Все метки)
2012 server.
В таблице изменил тип данных с int на decimal(18,1). Теперь триггер, который который раньше вставлял int не может вставить decimal. Происходит потеря дробной части. на всякий случай: ... да я исправил триггер чтобы он вставлял в таблицу decimal a не int что пробовал: 1. взять код триггера и с мнимальными изменениями как есть запустить в виде отдельного скрипта. Все работает. Дробная часть вставляется. 2. Удалил, создал триггер. 3. Курил гугл. В чем может быть прична? Подозреваю, что это какое-то кэширование. Например, вьюха после изменния тип данны столбца таблицы с которой она связана работать не будет (создал удалил - все заработало).
0
|
|
| 19.04.2017, 18:06 | |
|
Ответы с готовыми решениями:
11
При переводе string в long double теряется дробная часть
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 19.04.2017, 18:16 | |
|
Текст триггера прикажете угадать?
Подозреваю, что считываете значение в переменную, тип переменной изменить забыли.
0
|
|
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 19.04.2017, 19:31 [ТС] | |
|
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||
| 19.04.2017, 19:50 | ||
|
Возможно кто-нибудь сумеет нателепатировать текст триггера и укажет вам на ошибку.
0
|
||
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 20.04.2017, 16:16 [ТС] | |
|
В порядке эксперимента добавил в таблицу тествое поле c типом decimal(18,1).
Итог: <Брал одну и туже переменную для заполнения обоих полей.> Во вновь добавленное поле с типом decimal(18,1) значение пишется с остатком. В "старое" поле, измененное с int на decimal(18,1), значение пишется без остатка. Теперь точно уверен, что это какое-то кэширование. Вопрос в том какое. Сейчас попробовал обновить статистику для полей таблицы в которую происходит вставка. Если не поможет, то буду сносить измененные поля и добавлять их занова. Добавлено через 5 часов 51 минуту Удаление полей и создание их занова с теми же названиями, не заставили insert правильно работать в триггере. Вопрос решился только созданим полей с похожими названиями и сразу нужными типами данных. Лично для себя сделал вывод, что поля таблицы лучше не изменять вообще.
0
|
|
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||
| 20.04.2017, 16:25 | ||
|
0
|
||
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
||
| 20.04.2017, 16:31 [ТС] | ||
|
Добавлено через 1 минуту Загадка еще, что insert не работает именно из триггера. Тот же код запросом проходит так как надо.
0
|
||
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
| 20.04.2017, 16:36 | |
|
секретный код неправильно работающего триггера мы так и не увидим?
0
|
|
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
||||||
| 20.04.2017, 17:13 [ТС] | ||||||
0
|
||||||
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||||
| 20.04.2017, 17:51 | ||||||||
первая строка записана ранее, вторая - в преобразованное поле. триггер даже не менял
1
|
||||||||
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 20.04.2017, 18:43 [ТС] | |
|
Именно так и ожидалось, что это должно работать. Но не работает (поэтому и топик на форуме). Почему? Я не знаю! Просьба выложить сюда информацию о версии сервера, чтобы знать где точно я не столкнусь с такой проблемой.
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||
| 20.04.2017, 21:12 | ||
|
При следующем выполнении триггера план будет скомпилирован полностью или будут перекомпилированы отдельные инструкции. Соответствующие события можно отследить профайлером - SP:CacheMiss или SP:Recompile. Если таковых не будет, значит вы нарвались на какой-то баг. Возможно, сей баг уже был пофикшен в каком-либо SP или CU. Поэтому желательно увидеть результат выполнения select @@version с вашего сервера. Если при выполнении insert потребовалось неявное приведение типа, это будет видно в плане выполнения - в итераторе Table Insert (Clustered Index Insert) должен быть вызов CONVERT_IMPLICIT. Думаю, что вылечить можно не создавая новые столбцы, а выполнив alter table ... rebuild.
0
|
||
| 20.04.2017, 21:12 | |
|
Помогаю со студенческими работами здесь
12
Разделить дробное число на 2 части: целая часть числа и его дробная часть Выяснить что больше, целая часть числа x, или его дробная часть, умноженная на 10 Ввести число x, выяснить что больше : целая часть числа x или его дробная часть умноженная на 10 Ввести число x, выяснить что больше: целая часть числа x, или его дробная часть, умноженная на 10 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|