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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2008, 07:43   #1  
exodus is offline
exodus
Участник
 
23 / 10 (1) +
Регистрация: 22.10.2007
Find
Подскажите как работает функция find? И может ли она мне помочь в моей ситуации,когда у меня имеются 2 таблицы,в первой таблице находится так сказать ключ к 2 таблице(т.е. таблица1.поле1 = таблица2.поле1) и мне необходимо из второй таблицы вытягивать необходимые данные.
Старый 17.07.2008, 07:53   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Функция find() выдает табличную переменную искомой таблицы, содержащую в себе запись, соответствующую значению переданного в функцию уникального идентификатора в искомой таблице. Как использовать полученную табличную переменную в дальнейшем - Ваше личное дело
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: George Nordic (2).
Старый 17.07.2008, 10:09   #3  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Следует добавить, что если вы создаёте свою таблицу, правилом хорошего тона является необходимо создание как минимум двух табличных методов
find() - найти строку; и
exist() - проверка на наличие строки;
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 17.07.2008, 12:04   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Тут еще такая вещь существует чтобы не тянуть весь буфер записи - record-a на большой таблице иногда лучше писать обычный select
X++:
select Name from Inventtable where Inventtable.itemId = _ItemId;
вместо
X++:
InventTable::find(_ItemId).Name;
Старый 17.07.2008, 12:08   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Russland Посмотреть сообщение
Следует добавить, что если вы создаёте свою таблицу, правилом хорошего тона является необходимо создание как минимум двух табличных методов
exist() - проверка на наличие строки;
На самом деле четырёх, ещё не забывайте про checkExist и txtNotExist
Причём, правило распространяется на таблицы с уникальными индексами.
Старый 17.07.2008, 12:20   #6  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Точно 4-х
спасибо за поправку
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 17.07.2008, 13:14   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от MikeR Посмотреть сообщение
Тут еще такая вещь существует чтобы не тянуть весь буфер записи - record-a на большой таблице иногда лучше писать обычный select
X++:
select Name from Inventtable where Inventtable.itemId = _ItemId;
вместо
X++:
InventTable::find(_ItemId).Name;
Не всегда.
select Inventtable where Inventtable.itemId = _ItemId;
Эта запись будет закэширована в Аксапте, если у таблицы указано что ее надо кэшировать. Следовательно, повторный InventTable::find(_ItemId).Name; может и не привести к генерации запроса на SQL

А вот это
select Name from Inventtable where Inventtable.itemId = _ItemId;
кэшироваться не будет. следовательно повторный вызов приведет к повторному запросу на SQL.
__________________
полезное на axForum, github, vk, coub.
Старый 17.07.2008, 13:25   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от mazzy Посмотреть сообщение
Эта запись будет закэширована в Аксапте, если у таблицы указано что ее надо кэшировать...
ну собственно да, просто про кэширование еще и не было разговора . Может человек не на форме это будет реализовывать.
Теги
exists, find, txtnotexists, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
To find objects in AOT with particular properties Blog bot DAX Blogs 1 26.04.2008 07:33
Kashperuk Ivan: Hotkeys and Find vs Filter in Dynamics AX 2009 Blog bot DAX Blogs 2 11.03.2008 12:06
Kashperuk Ivan: Find all reports with datasources innerjoined 1:n Blog bot DAX Blogs 2 09.03.2008 14:05
daxmy: AOT Find function Blog bot DAX Blogs 0 17.08.2007 01:23
Dynamics AX Geek: cross-references & find Blog bot DAX Blogs 0 28.10.2006 16:40

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

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

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