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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.08.2017, 19:12   #1  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Об особенностях реализации PurchTable.exist()
Приветствую!

Вопрос: а есть ли глубинный смысл в том, что PurchTable.exist() не всегда возвращает True, если передан пустой параметр, в отличие, например, от SalesTable.exist()?
Старый 23.08.2017, 21:38   #2  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от alex55 Посмотреть сообщение
Приветствую!

Вопрос: а есть ли глубинный смысл в том, что PurchTable.exist() не всегда возвращает True, если передан пустой параметр, в отличие, например, от SalesTable.exist()?
*Не всегда возвращает False.
Старый 24.08.2017, 05:18   #3  
Pandasama is offline
Pandasama
Участник
 
448 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Насколько я вижу, в 2012 метод выглядит так:
X++:
static boolean exist(PurchId  purchId)
{
    return (select firstonly RecId from purchTable
                index hint PurchIdx
                where purchTable.PurchId    == purchId
           ).RecId != 0;
}
Возратить true для пустого параметра он может, как мне кажется, только если существует PurchTable с пустым PurchId.
При этом PurchId - обязательное ключевое поле.
Старый 24.08.2017, 08:30   #4  
Pokersky09 is offline
Pokersky09
Участник
 
43 / 60 (3) ++++
Регистрация: 15.11.2012
Адрес: Turkey
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Насколько я вижу, в 2012 метод выглядит так:
Возратить true для пустого параметра он может, как мне кажется, только если существует PurchTable с пустым PurchId.
При этом PurchId - обязательное ключевое поле.
Если PurchId - обязательное ключевое поле, думаю имеет смысл добавить в метод "защиту от дурака" и избавить тем самым БД от лишних запросов? И скорее всего вопрос автора именно об этом.
Старый 24.08.2017, 09:00   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от alex55 Посмотреть сообщение
Вопрос: а есть ли глубинный смысл в том, что PurchTable.exist() не всегда возвращает
Смею предположить, что у вас данные немного corrupted.
__________________
Isn't it nice when things just work?
Старый 24.08.2017, 11:40   #6  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Pokersky09 Посмотреть сообщение
Если PurchId - обязательное ключевое поле, думаю имеет смысл добавить в метод "защиту от дурака" и избавить тем самым БД от лишних запросов? И скорее всего вопрос автора именно об этом.
Да. Собственно обнаружилась запись в PurchTable с пустым PurchId, неожиданно, а тут еще и реализация метода такая специфическая.
Старый 24.08.2017, 11:44   #7  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от macklakov Посмотреть сообщение
Смею предположить, что у вас данные немного corrupted.
То есть я правильно понимаю что запись в PurchTable с пустым PurchId - это явно не нормально и такого быть не должно?
Старый 24.08.2017, 12:11   #8  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от alex55 Посмотреть сообщение
То есть я правильно понимаю что запись в PurchTable с пустым PurchId - это явно не нормально и такого быть не должно?
Правильно. Вообще свойство Mandatory этого поля установлено в Yes.
__________________
// no comments
За это сообщение автора поблагодарили: alex55 (1).
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: When making a project adjustment you get an error ‘Account number for transaction type Ledger journal does not exist’ Blog bot DAX Blogs 0 10.01.2017 05:15
emeadaxsupport: Microsoft Dynamics AX 2012 Retail Statement Posting Error: Account number for transaction type Ledger journal does not exist Blog bot DAX Blogs 0 27.09.2012 20:13
ax-erp: Performance – find() vs. exist() method Blog bot DAX Blogs 0 26.04.2012 13:11
exist method on temporary table ist DAX: Программирование 3 31.03.2010 10:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:24.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.