|
![]() |
#1 |
Участник
|
Если судить по уточненному вопросу, то по-любому структура кода для изменения данных таблицы должна быть другой, в общем случае:
X++: ttsbegin; while select forupdate testInfo { testInfo.NameDI = // что-то; testInfo.update(); } ttscommit; |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от FrolovAndy
![]() Если судить по уточненному вопросу, то по-любому структура кода для изменения данных таблицы должна быть другой, в общем случае:
X++: ttsbegin; while select forupdate testInfo { testInfo.NameDI = // что-то; testInfo.update(); } ttscommit; |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от FrolovAndy
![]() Если судить по уточненному вопросу, то по-любому структура кода для изменения данных таблицы должна быть другой, в общем случае:
X++: ttsbegin; while select forupdate testInfo { testInfo.NameDI = // что-то; testInfo.update(); } ttscommit; X++: static void Job29(Args _args) { TestInfo testInfo; ttsbegin; while select forupdate TestInfo { testInfo.NameDI=testInfo.NameID+'10'; testInfo. } ttscommit; } |
|
![]() |
#4 |
Участник
|
Цитата:
Более того, для строковых вообще невозможна прямая арифметика, +'10' даст соединение двух строк, но никак не сложение. Вообще, очень рекомендую эту книжку: http://progbook.ru/x-axapta/589-erem...ii-axapta.html Большинство с неё начинали, она хоть и по AX3, но все базовые принципы X++ там изложены лучше некуда! ![]() |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от FrolovAndy
![]() Да, для int типов надо +10, а не +'10'
Более того, для строковых вообще невозможна прямая арифметика, +'10' даст соединение двух строк, но никак не сложение. Вообще, очень рекомендую эту книжку: http://progbook.ru/x-axapta/589-erem...ii-axapta.html Большинство с неё начинали, она хоть и по AX3, но все базовые принципы X++ там изложены лучше некуда! ![]() X++: static void TstInf(Args _args) { TestInfo testInfo; ; ttsbegin; while select forupdate TestInfo where testInfo.NameID = "1" { testInfo.NameDI=testInfo.NameID + 10; testInfo.update(); } ttscommit; } |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от JonAx
![]() Можно еще один вопрос, как можно добавить данные через insert,чтобы в NameID я программно добавил данные а то я что то не могу понять, постоянно ошибка выходит, я вот так вот сделал))
X++: static void TstInf(Args _args) { TestInfo testInfo; ; ttsbegin; while select forupdate TestInfo where testInfo.NameID = "1" { testInfo.NameDI=testInfo.NameID + 10; testInfo.update(); } ttscommit; } X++: // where testInfo.NameID = "1" where testInfo.NameID == 1 2. Опять же, если int, то не == "1", а правильно будет == 1 Только вы про insert упомянули, так вам надо новые записи добавить, или изменить существующие? |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от FrolovAndy
![]() В условии "where" должно быть по-другому:
X++: // where testInfo.NameID = "1" where testInfo.NameID == 1 2. Опять же, если int, то не == "1", а правильно будет == 1 Только вы про insert упомянули, так вам надо новые записи добавить, или изменить существующие? |
|
![]() |
#8 |
Участник
|
Если уж совсем изящно, то лучше так: X++: static void TstInf(Args _args) { TestInfo testInfo, // для выбора уже имеющихся строк newRecord; // для вставки новых ; ttsbegin; while select testInfo where testInfo.NameID == 1 { newRecord.clear(); newRecord.data(testInfo); newRecord.NameDI = testInfo.NameID + 10; newRecord.insert(); } ttscommit; } |
|