18.10.2011, 15:43 | #21 |
Участник
|
Цитата:
Сообщение от lev
В общем я бы пошел по следующему пути:
1. Если нужно разово выполнить обновление какого то поля, во всей таблице и при этом бизнес логика из метода update() таблицы не нужна, то выполнил был это обновление напрямую в SQL. 2. Если это какая то периодическая операция, которая раз в месяц (неделю, квартал, год) должна выполняться кем то из аксапты, то сформировал бы SQL запрос и выполнил его напрямую в SQL из аксапты (как это сделать я писал в предыдущих сообщениях). P.S. если конечно сам SQL нормально переваривает такого вида запрос если есть какаято логика в update, то без разницы что написать update_recordset или select forupdate |
|
18.10.2011, 15:45 | #22 |
Участник
|
|
|
18.10.2011, 15:48 | #23 |
Ищущий знания...
|
про бизнес логику относится к обоим пунктам, не очень явно об этом написал.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
18.10.2011, 15:48 | #24 |
Участник
|
|
|
18.10.2011, 15:56 | #25 |
Участник
|
Цитата:
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); Последний раз редактировалось S.Kuskov; 18.10.2011 в 16:05. |
|
|
За это сообщение автора поблагодарили: Logger (3), Dreadlock (1). |
18.10.2011, 16:24 | #26 |
Участник
|
Да, действительно так сработало.
Спасибо! |
|
18.10.2011, 17:26 | #27 |
Участник
|
а ведь потом кому-то все это разгребать
|
|
19.10.2011, 10:21 | #28 |
Участник
|
Сегодня обнаружил, что строки непонятным образом обрезаются.
Т.е. если апдэйтить поле фразой "Привет ААА, как дела?", при этом выполнить сделав это так: X++: update_recordset myTable setting myTable.myField_1 = (myTable.myField_1 + "Привет ") + (myTable.myField_2 + " , как дела?") Будьте бдительны |
|
|
За это сообщение автора поблагодарили: Veter (1). |
19.10.2011, 15:56 | #29 |
Участник
|
здравствуйте ,
проявилась зависимость образания строки от длинны поля : (myTable.myField_2 + " , как дела?") - myField_2 + 1 символ
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") |
|
19.10.2011, 16:28 | #30 |
Участник
|
|
|
19.10.2011, 17:22 | #31 |
Участник
|
могу предложить 2 варианта :
1 В лоб - увеличить длинну myField_2 2 В сторону - апдейтить в два прохода - поле отдельно строка отдельно
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") Последний раз редактировалось Veter; 19.10.2011 в 17:31. |
|
19.10.2011, 18:15 | #32 |
Участник
|
Мне больше по душе написать в Мелкософт.
Просто представьте, Вы совсем не в курсе проблемы, открываете код, а том то +1 то -2, не поддающиеся логике пляски с бубном, да еще и человек с небольшим опытом. Так и вижу, как он это все стирает, и через пол часа достает свой бубен. |
|
24.10.2011, 12:38 | #33 |
Участник
|
Создам на всякий случай в базе для следующих версий. Такое врядли будут хотфиксить.
|
|
22.11.2011, 17:34 | #34 |
Участник
|
Сегодня бился несколько часов над тем чтобы в select в запросе (where) использовать конкатенацию двух полей в таблице. Не получалось. Пошёл на поклон к знатокам. Оказалось что в select нельзя использовать конкатенацию полей таблицы. Просто нельзя и всё. Можно использовать только одно поле.
Хотя Аксапта правильно создаёт запрос к БД (sql), да и такой запрос в самом sql менеджере работает. А вот Аксапта - против подобного, хотя такой код компилирует успешно. Видимо, с точки зрения синтаксиса, противопоказаний нет. Пришлось делать выборку всей таблицы и в цикле искать совпадение по конкатенации двух полей. |
|