AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.07.2012, 17:18   #1  
maxkov is offline
maxkov
Участник
 
77 / 11 (1) +
Регистрация: 09.09.2005
Слишком большое число для проведения операции
Случилась страшная кака - при пересчете балансов по периодам появились суммы размер которых превышает 32 байта и аксапта не может их записать и выдает ошибку SQL
что посоветуете сделать?
версия 4,0
Старый 16.07.2012, 17:40   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
бежать в кадры... А на самом деле интересная ситуация.... Я даже не знаю... Может завести ряд переменных и там хранить слагаемые.
Старый 16.07.2012, 18:07   #3  
maxkov is offline
maxkov
Участник
 
77 / 11 (1) +
Регистрация: 09.09.2005
Ну вообще есть же страны у которых коробок спичек миллион стоит. Как то у них не переполняется ведь.
Старый 16.07.2012, 18:14   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
А кто мешает сделать, как курс отношения 100:1000
__________________
Axapta book for developer
Старый 17.07.2012, 07:33   #5  
DmitryK is offline
DmitryK
Участник
 
179 / 76 (3) ++++
Регистрация: 22.12.2011
Вы уверены, что правильно написали? 32 байта? Может все-таки бита? Или вам не принципиально? )
Для числа, хранимого в 32 байтах можно учитывать и спички по 1 млн.
Если мое предположение правильно, то данная проблема актуальна только для целочисленного представления данных.

C уважением, Дмитрий.

Последний раз редактировалось DmitryK; 17.07.2012 в 07:46.
За это сообщение автора поблагодарили: kornix (1).
Старый 17.07.2012, 11:54   #6  
maxkov is offline
maxkov
Участник
 
77 / 11 (1) +
Регистрация: 09.09.2005
ну биты биты )) не влазит вообщем


Error Сообщение (18:53:48) Невозможно создать запись в Операции по сальдо ГК (LedgerBalancesTrans). Номер счета : 51.02, 30.06.2012.
База данных SQL обнаружила ошибку.
Info Сообщение (18:53:48) Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver]Числовое значение выходит за пределы допустимого диапазона
Info Сообщение (18:53:48) Оператор SQL: INSERT INTO LEDGERBALANCESTRANS (ACCOUNTNUM,TRANSDATE,DEBITMST,CREDITMST,DEBITOPRMST,CREDITOPRMST,DEBITTAXMST,CREDITTAXMST,PERIODCODE,DEBITMSTSECOND,CREDITMSTSECOND,DEBITOPRMSTSECOND,CREDITOPRMSTSECOND,DEBITTAXMSTSECOND,CREDITTAXMSTSECOND,QTY,SYSTEMGENERATEDULTIMO,LEDGERBALANCESVARIANT,DATAAREAID,RECVERSION,RECID) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)


А по поводу курса - уже куча операций по обычному курсу если сейчас поделить то миллион станет тыщей а старые проводки останутся миллионами
Старый 17.07.2012, 12:32   #7  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Есть мнение, которое может быть ошибочным, но тем не менее ...

maxkov, а откуда дровишки про 32-бита ?
Вы уверены, что превышение именно в сумме?
32 бита - это обычный размер real на SQL, однако этот тип не применяется для хранения сумм для DAX, cуммы в DAX - это 13-байтовый Numeric(28,12), могущий хранить величины в пределах плюс/минус 10^28 - 1 (бессчетные окулиарды - как их превысить, ума не приложу).

Кроме того, 32-бита - это обычный int (который тоже является числовым значением, о котором говорится в ошибке). Данному типу у нас в приведенном запросе соответствуют:
  1. поле RecVersion
  2. поле SystemGeneratedUltimo
  3. поле PeriodCode
  4. поле LedgerBalancesVariant


Нет ли в данном случае попыток лечения китайца от желтухи и поиска черной кошки в темной комнате?
Можно трэйс запроса со стороны SQL-сервера в студию взамен корявого аксаптовского ?
Ибо есть серьезные подозрения (если Ваша правда про ругань именно на 32-хбитное число), что дело не в сумме, а int-овских полях
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Последний раз редактировалось TasmanianDevil; 17.07.2012 в 12:57. Причина: В разрядности максимального для Numeric(28,12) ошибся
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Повторные операции в маршрутах Hard DAX: Функционал 21 21.09.2011 15:04
Операции с ОС, переданными в аренду IDian DAX: Функционал 2 10.08.2009 23:25
Как для ГК операции в LedgerTrans найти соответствующую операцию в VendTrans? romulis DAX: Программирование 20 29.08.2006 14:10
Помогите указать 2 рабочих центра на операции clerk DAX: Функционал 14 08.02.2005 22:35
Строки спецификации - Код операции Андре DAX: Функционал 3 08.05.2003 14:27

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:54.