![]() |
#1 |
Участник
|
В AX2009 не вызываются методы insert/update/delete временной таблицы
На форме в качестве источника данных указана временная таблица. У таблицы перекрыт метод update. При изменении данных на форме вызывается write датасурса, но не происходит вызова перекрытого метода update временной таблицы. Проверил в версии AX4.0 - там всё вызывалось. У всех так? Что это глюк или фича?
|
|
|
За это сообщение автора поблагодарили: IKA (1). |
![]() |
#2 |
Участник
|
Вы проверяли, во временной таблице есть данные на тот момент, когда собираетесь вызвать метод update()? Быть может ваш запрос пуст.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 16.09.2010 в 17:04. |
|
![]() |
#3 |
Участник
|
Дело в том, что сама вставка, изменение или удаление данных происходит. Т.е. я визуально наблюдаю, как меняются данные на гриде и в самой временной таблицы. проблема в том, что все изменения проходят в обход перекрытых табличных методов.
P.S.: Прошу прощения. Про АХ4.0 наврал. Там наблюдается абсолютно такоеже поведение - методы не вызываются. Значит это фича? |
|
![]() |
#4 |
Участник
|
Аналогичная ситуация.
|
|
![]() |
#5 |
Участник
|
не вызываются ли doUpdate(), doInsert() в обход перекрытым методам?
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 16.09.2010 в 17:16. |
|
![]() |
#6 |
Участник
|
И как это проверить? ))
|
|
![]() |
#7 |
Участник
|
как вариант validateWrite\validateDelete использовать - они отрабатывают
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
![]() |
#8 |
Участник
|
возможно в коде на табличной переменной вызывается метод skipDataMethods, который запрещает вызов табличных методов insert, update, delete.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 16.09.2010 в 17:40. |
|
![]() |
#9 |
Ищущий знания...
|
Цитата:
А для запрещения вызова delete используется метод skipDeleteMethod(). Но думаю к данному делу это не относится, скорее всего это фича ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#10 |
Участник
|
Цитата:
![]()
__________________
С уважением, Александр. |
|
![]() |
#11 |
Ищущий знания...
|
Ax3.0 SP 3 Поведение такое же. Методы inser, update, write, delete не вызываются.
И я думаю этот как раз связано с тем что dataSource - это временная таблица. Т.к. временная таблица содержит в себе данные только пока форма открыта, а при закрытии формы она очищается, разработчики видимо решили, что использовать эти методы не нужно, все равно таблица в итоге очиститься ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#12 |
Роман Долгополов (RDOL)
|
Цитата:
Сообщение от lev
![]() Ax3.0 SP 3 Поведение такое же. Методы inser, update, write, delete не вызываются.
И я думаю этот как раз связано с тем что dataSource - это временная таблица. Т.к. временная таблица содержит в себе данные только пока форма открыта, а при закрытии формы она очищается, разработчики видимо решили, что использовать эти методы не нужно, все равно таблица в итоге очиститься ![]() |
|
|
За это сообщение автора поблагодарили: slava (1), lev (2), petr (3), Daiver (1), gl00mie (2), S.Kuskov (2), samolalex (1). |
![]() |
#13 |
Участник
|
Цитата:
![]() Т.е. проблема игнорирования методов проявляется только для таблиц временных "от рождения" и только при редактировании их через datasource. При явном вызове insert|update|delete из кода, методы вызываются всегда. |
|
|
За это сообщение автора поблагодарили: Morpheus (2). |
![]() |
#14 |
Участник
|
Я дико извиняюсь за то что внёс такую сумятицу и неразбериху, но я не прав.
Цитата:
![]() На лету сделать постоянную таблицу временной - казалось что может быть проще? - один вызов common.SetTmp(). Подвох крылся в том, в каком именно месте на форме сделать этот вызов. И теперь я точно знаю, что этого не стоит делать до тех пор пока не отработает super метода init формы. К слову на теже грабли я наступил вот тут Display метод временной таблицы выполняется в компании DAT |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
![]() |
#15 |
Злыдни
|
Возвращаясь к теме...
А Майкрософт починить не обещал? или это все-таки фитча?
Не придумала ничего лучше, чем вместо super() вызывать проверку датасорса validateDelete, дальше табличный delete и датасорсовый executeQuery. Корректнее этого нет вариантов?
__________________
Все может быть и быть все может, все может быть или не быть, но быть того никак не может, чего совсем не может быть. |
|