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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.04.2007, 09:47   #1  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
X++:
    ttsbegin;
    while select forupdate firstTable
        join secondTable
        where secondTable.ItemId      == firstTable.ItemId
    {
        secondTable.field_1   = 1;
        secondTable.field_2  = 2;
        secondTable.update();
    }
    ttscommit;
Так должно работать
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 16.04.2007, 10:34   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
:)
Цитата:
Сообщение от Russland Посмотреть сообщение
Так должно работать
Так то конечно будет работать.
Интересовала ситация именно с выбором на обновление и LOCK только второго курсора.
Но и это уже не очень актуально.
Старый 05.12.2008, 00:11   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
подниму старую тему, с вашего позволения...

Так можно ли всё-таки в аксе сделать join и выбрать на редактирование только одну (например) таблицу?
Аналогов SQL, типа
X++:
select ... for update of ...
нет, других способов тоже не найдено..
Может в 2009 или дальше что-то изменилось или хотя бы планируется?

Откуда возник вопрос: есть ряд запросов типа (возможно с сортировкой)
X++:
select forUpdate inventTrans where ... join InventDim where ...

select forUpdate inventSum where ... join InventDim where ...
Ну это упрощённый вариант, но идея понятна.
Ясен пень, что блокировать InventDim по смыслу здесь не нужно.
Но как это сделать не понятно.
Разбивать на 2 запроса часто не представляется возможным по причинам либо сортировки, либо производительности, либо ещё чего-то...
А блокировочки то жить очень иногда мешают...
__________________
Zhirenkov Vitaly
Старый 05.12.2008, 08:06   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от ZVV
...
Так можно ли всё-таки в аксе сделать join и выбрать на редактирование только одну (например) таблицу?
...
Вы в обычном SQL (например, на диалекте MS SQL 2005) можете написать запрос, которого хотите добиться из аксапты через Х++?
__________________
С уважением,
glibs®
Старый 05.12.2008, 10:27   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от glibs Посмотреть сообщение
Вы в обычном SQL (например, на диалекте MS SQL 2005) можете написать запрос, которого хотите добиться из аксапты через Х++?
в оракле - да (см. моё предыдущее сообщение, в MS SQL - незнаю, не уверен).
__________________
Zhirenkov Vitaly
Старый 05.12.2008, 10:52   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Да я за эту фразу зацепился:
Цитата:
Сообщение от ZVV Посмотреть сообщение
Разбивать на 2 запроса часто не представляется возможным по причинам либо сортировки, либо производительности, либо ещё чего-то...
И подумал, что я либо запрос бы передал в метод на таблице, либо просто параметры. А там уже по ходу пьессы бы и проапдйтил.

Либо лист обработал бы в классе (как в FormLetter сделано).

С Уважением,
Георгий
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
вызов метода из таблицы в операторе while select V777 DAX: Программирование 7 23.04.2008 09:11
Из-за пробелов не срабатывает select vasiliy DAX: Программирование 4 08.12.2006 15:04
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
joined-курсор был использован в другом операторе SELECT raz DAX: Программирование 8 08.01.2004 12:54
select FORUPDATE renat DAX: Программирование 5 10.09.2003 09:45

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

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

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