AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 18.10.2011, 15:43   #21  
ice ist offline
ice
Участник
Benutzerbild von ice
Лучший по профессии 2014
 
1.821 / 402 (17) +++++++
Registriert seit: 23.03.2006
Zitat:
Zitat von lev Beitrag anzeigen
В общем я бы пошел по следующему пути:
1. Если нужно разово выполнить обновление какого то поля, во всей таблице и при этом бизнес логика из метода update() таблицы не нужна, то выполнил был это обновление напрямую в SQL.
2. Если это какая то периодическая операция, которая раз в месяц (неделю, квартал, год) должна выполняться кем то из аксапты, то сформировал бы SQL запрос и выполнил его напрямую в SQL из аксапты (как это сделать я писал в предыдущих сообщениях).

P.S. если конечно сам SQL нормально переваривает такого вида запрос
а как при втором пункте сработает бизнес-логика аксапты, если SQL запрос и выполнится напрямую в SQL из аксапты???
если есть какаято логика в update, то без разницы что написать update_recordset или select forupdate
Alt 18.10.2011, 15:45   #22  
ice ist offline
ice
Участник
Benutzerbild von ice
Лучший по профессии 2014
 
1.821 / 402 (17) +++++++
Registriert seit: 23.03.2006
Zitat:
Zitat von Dreadlock Beitrag anzeigen
Операция периодическая, пакетная, запускается раз в пол часа.
каждые пол часа апдейтить таким образом полмиллиарда записей
вы точно все верно продумали?
Alt 18.10.2011, 15:48   #23  
lev ist offline
lev
Ищущий знания...
Benutzerbild von lev
Oracle
MCBMSS
Axapta Retail User
 
1.723 / 491 (20) +++++++
Registriert seit: 18.01.2005
Ort: Москва
Zitat:
Zitat von ice Beitrag anzeigen
а как при втором пункте сработает бизнес-логика аксапты, если SQL запрос и выполнится напрямую в SQL из аксапты???
если есть какаято логика в update, то без разницы что написать update_recordset или select forupdate
про бизнес логику относится к обоим пунктам, не очень явно об этом написал.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Alt 18.10.2011, 15:48   #24  
Dreadlock ist offline
Dreadlock
Участник
Benutzerbild von Dreadlock
 
298 / 224 (8) ++++++
Registriert seit: 07.05.2009
Ort: Москва
Zitat:
Zitat von lev Beitrag anzeigen
По хорошему сообщить бы в Майкрософт об этом баге...
Может они его исправят или хотя бы как то прокомментируют...
Если ни у кого не работает, то будем писать. Операция то полезная.
Alt 18.10.2011, 15:56   #25  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.448 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von Dreadlock Beitrag anzeigen
В общем задача такая, в поле ошибки надо записать последовательно несколько ошибок, т.е. потом, после первого обновления строк пойдет:
X++:
update_recordset myTable_1
            setting ErrorTxt = myTable_1.ErrorTxt + "CCC" + myTable_1.Field10_str  + " DDD ";
.
Экспериментальным путём удалось выполнить следующий код:
X++:
update_recordset myTable_1
            setting ErrorTxt = myTable_1.ErrorTxt + "CCC" + (myTable_1.Field10_str + " DDD ") + (myTable_1.Field11_str + " EEE ") + (myTable_1.Field12_str + " FFF");
и такой:
X++:
update_recordset myTable_1
            setting ErrorTxt = ("BBB " + myTable_1.ErrorTxt) + (" CCC " + myTable_1.Field10_str) + (" DDD " + myTable_1.Field11_str) + (" EEE " + myTable_1.Field12_str);

Geändert von S.Kuskov (18.10.2011 um 16:05 Uhr)
This post has been rated by: Logger (3), Dreadlock (1).
Alt 18.10.2011, 16:24   #26  
Dreadlock ist offline
Dreadlock
Участник
Benutzerbild von Dreadlock
 
298 / 224 (8) ++++++
Registriert seit: 07.05.2009
Ort: Москва
Да, действительно так сработало.
Спасибо!
Alt 18.10.2011, 17:26   #27  
ice ist offline
ice
Участник
Benutzerbild von ice
Лучший по профессии 2014
 
1.821 / 402 (17) +++++++
Registriert seit: 23.03.2006
а ведь потом кому-то все это разгребать
Alt 19.10.2011, 10:21   #28  
Dreadlock ist offline
Dreadlock
Участник
Benutzerbild von Dreadlock
 
298 / 224 (8) ++++++
Registriert seit: 07.05.2009
Ort: Москва
Сегодня обнаружил, что строки непонятным образом обрезаются.

Т.е. если апдэйтить поле фразой "Привет ААА, как дела?", при этом выполнить сделав это так:
X++:
update_recordset myTable
      setting myTable.myField_1 = (myTable.myField_1 + "Привет ") + (myTable.myField_2 + " , как дела?")
Получим примерно следующее: "ПриветААА,ка"

Будьте бдительны
This post has been rated by: Veter (1).
Alt 19.10.2011, 15:56   #29  
Veter ist offline
Veter
Участник
Benutzerbild von Veter
 
18 / 35 (2) +++
Registriert seit: 23.06.2011
Ort: Минск
здравствуйте ,
проявилась зависимость образания строки от длинны поля :
(myTable.myField_2 + " , как дела?") - myField_2 + 1 символ
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки")
Alt 19.10.2011, 16:28   #30  
Dreadlock ist offline
Dreadlock
Участник
Benutzerbild von Dreadlock
 
298 / 224 (8) ++++++
Registriert seit: 07.05.2009
Ort: Москва
Zitat:
Zitat von Veter Beitrag anzeigen
здравствуйте ,
проявилась зависимость образания строки от длинны поля :
(myTable.myField_2 + " , как дела?") - myField_2 + 1 символ

Да, только что теперь с этим делать?
Alt 19.10.2011, 17:22   #31  
Veter ist offline
Veter
Участник
Benutzerbild von Veter
 
18 / 35 (2) +++
Registriert seit: 23.06.2011
Ort: Минск
могу предложить 2 варианта :
1 В лоб - увеличить длинну myField_2
2 В сторону - апдейтить в два прохода - поле отдельно строка отдельно
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки")

Geändert von Veter (19.10.2011 um 17:31 Uhr)
Alt 19.10.2011, 18:15   #32  
Dreadlock ist offline
Dreadlock
Участник
Benutzerbild von Dreadlock
 
298 / 224 (8) ++++++
Registriert seit: 07.05.2009
Ort: Москва
Мне больше по душе написать в Мелкософт.
Просто представьте, Вы совсем не в курсе проблемы, открываете код, а том то +1 то -2, не поддающиеся логике пляски с бубном, да еще и человек с небольшим опытом. Так и вижу, как он это все стирает, и через пол часа достает свой бубен.
Alt 24.10.2011, 12:38   #33  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Создам на всякий случай в базе для следующих версий. Такое врядли будут хотфиксить.
Alt 22.11.2011, 17:34   #34  
Crusader3000 ist offline
Crusader3000
Участник
 
1 / 10 (1) +
Registriert seit: 22.11.2011
Ort: UA
Сегодня бился несколько часов над тем чтобы в select в запросе (where) использовать конкатенацию двух полей в таблице. Не получалось. Пошёл на поклон к знатокам. Оказалось что в select нельзя использовать конкатенацию полей таблицы. Просто нельзя и всё. Можно использовать только одно поле.
Хотя Аксапта правильно создаёт запрос к БД (sql), да и такой запрос в самом sql менеджере работает. А вот Аксапта - против подобного, хотя такой код компилирует успешно. Видимо, с точки зрения синтаксиса, противопоказаний нет.

Пришлось делать выборку всей таблицы и в цикле искать совпадение по конкатенации двух полей.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
update_recordset не работает с системными полями и таблицами? Alexx7 DAX: Программирование 42 19.10.2009 09:39
update_recordset и мемо-поля Lucky13 DAX: Программирование 5 28.08.2009 14:10
update_recordset. Бага или фича? Lucky13 DAX: Программирование 7 08.04.2009 17:33
Почему не отрабатывает update_recordset? breakpoint DAX: Программирование 17 25.06.2008 18:27
Вопрос по update_recordset cherv DAX: Программирование 5 14.07.2006 14:28

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 09:09 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.