![]() |
#21 |
Участник
|
Zitat:
Zitat von lev
![]() В общем я бы пошел по следующему пути:
1. Если нужно разово выполнить обновление какого то поля, во всей таблице и при этом бизнес логика из метода update() таблицы не нужна, то выполнил был это обновление напрямую в SQL. 2. Если это какая то периодическая операция, которая раз в месяц (неделю, квартал, год) должна выполняться кем то из аксапты, то сформировал бы SQL запрос и выполнил его напрямую в SQL из аксапты (как это сделать я писал в предыдущих сообщениях). P.S. если конечно сам SQL нормально переваривает такого вида запрос ![]() если есть какаято логика в update, то без разницы что написать update_recordset или select forupdate |
|
![]() |
#22 |
Участник
|
|
|
![]() |
#23 |
Ищущий знания...
|
про бизнес логику относится к обоим пунктам, не очень явно об этом написал.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#24 |
Участник
|
|
|
![]() |
#25 |
Участник
|
Zitat:
![]() 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). |
![]() |
#26 |
Участник
|
Да, действительно так сработало.
Спасибо! |
|
![]() |
#27 |
Участник
|
а ведь потом кому-то все это разгребать
![]() |
|
![]() |
#28 |
Участник
|
Сегодня обнаружил, что строки непонятным образом обрезаются.
Т.е. если апдэйтить поле фразой "Привет ААА, как дела?", при этом выполнить сделав это так: X++: update_recordset myTable setting myTable.myField_1 = (myTable.myField_1 + "Привет ") + (myTable.myField_2 + " , как дела?") Будьте бдительны ![]() |
|
|
This post has been rated by: Veter (1). |
![]() |
#29 |
Участник
|
здравствуйте ,
проявилась зависимость образания строки от длинны поля : (myTable.myField_2 + " , как дела?") - myField_2 + 1 символ ![]()
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") |
|
![]() |
#30 |
Участник
|
|
|
![]() |
#31 |
Участник
|
могу предложить 2 варианта :
1 В лоб - увеличить длинну myField_2 2 В сторону - апдейтить в два прохода - поле отдельно строка отдельно
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") Geändert von Veter (19.10.2011 um 17:31 Uhr) |
|
![]() |
#32 |
Участник
|
Мне больше по душе написать в Мелкософт.
Просто представьте, Вы совсем не в курсе проблемы, открываете код, а том то +1 то -2, не поддающиеся логике пляски с бубном, да еще и человек с небольшим опытом. Так и вижу, как он это все стирает, и через пол часа достает свой бубен. |
|
![]() |
#33 |
Участник
|
Создам на всякий случай в базе для следующих версий. Такое врядли будут хотфиксить.
|
|
![]() |
#34 |
Участник
|
Сегодня бился несколько часов над тем чтобы в select в запросе (where) использовать конкатенацию двух полей в таблице. Не получалось. Пошёл на поклон к знатокам. Оказалось что в select нельзя использовать конкатенацию полей таблицы. Просто нельзя и всё. Можно использовать только одно поле.
Хотя Аксапта правильно создаёт запрос к БД (sql), да и такой запрос в самом sql менеджере работает. А вот Аксапта - против подобного, хотя такой код компилирует успешно. Видимо, с точки зрения синтаксиса, противопоказаний нет. Пришлось делать выборку всей таблицы и в цикле искать совпадение по конкатенации двух полей. |
|
|
![]() |
||||
Thema | Antworten | |||
update_recordset не работает с системными полями и таблицами? | 42 | |||
update_recordset и мемо-поля | 5 | |||
update_recordset. Бага или фича? | 7 | |||
Почему не отрабатывает update_recordset? | 17 | |||
Вопрос по update_recordset | 5 |
|