|
24.03.2016, 10:45 | #1 |
Участник
|
[Ax2009] - Дублирование записей в гриде
Уважаемые коллеги выручайте.
Пытаюсь сджойнить два датасурса по innerJoin'у. Оба _DS.cursor().setTmp() Всё вроде бы нормально, НО в гриде через некоторое кол-во строк одна из записей начинает дублироваться. Причем это происходит только когда строк ~ >200. На картинке видно, что у двух записей один RecId. Если пробежаться _DS.getNext() то дублирующихся строк видно несколько. Если смотреть временную таблицу, то естественно никаких дублей нет, да и быть не может. Направьте на путь истинный.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
|
За это сообщение автора поблагодарили: Ace of Database (3). |
24.03.2016, 10:54 | #2 |
Участник
|
Выведите в грид ещё recId второй таблицы и всё станет понятно
|
|
24.03.2016, 11:03 | #3 |
Участник
|
Если бы...
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 11:19 | #4 |
Участник
|
Дополнительных соединений никаких не делается? Может быть программно?
На гриде указан правильный источник данных? |
|
24.03.2016, 11:32 | #5 |
Участник
|
Нет, на форме кода нет. Всего 2 датасурса.
Да
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 11:58 | #6 |
Участник
|
_DS.cursor().setTmp() делаете в какой момент? Если делать до super в init формы, могут быть глюки. Нужно делать после, либо вообще в методе run.
|
|
24.03.2016, 12:12 | #7 |
Участник
|
В run() до super()
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 12:34 | #8 |
Участник
|
Вот проектик.
1 - Джоб наполнит таблицы. 2 - Открываем форму. 3 - Ищем строку находящуюся не на своем месте. Глюк зависит от размера окна. Если до обнаружения глюка не разворачивать форму, то он появиться в начале (у меня 40+ строка обычно). Если же развернуть, то искать придется в конце. Но если сначала найти, а потом развернуть, глюк останется в начале.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 12:36 | #9 |
Участник
|
|
|
24.03.2016, 12:41 | #10 |
Участник
|
Сортируются/фильтруются.
Цитата:
Kernel version, application version - 5.0.1500.3761. Больше не известно.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 13:46 | #11 |
Участник
|
Странно.
А у вас точно там не должно дублей быть ? При джоине такое возможно если одному значению ключа соответствует две записи в связанной табличке. А вообще времянки лучше не джоинить. Тормозит. Вот хорошая тема была. Временные таблицы и скорость работы |
|
24.03.2016, 13:56 | #12 |
Участник
|
Цитата:
X++: delete_from TestBugtable3; delete_from TestBugtable4; for ( i = 0; i < 1000; i++ ) { TestBugtable3.Field1 = i; TestBugtable3.doInsert(); TestBugtable4.Field1 = i; TestBugtable4.doInsert(); } Цитата:
Сообщение от Logger
А вообще времянки лучше не джоинить. Тормозит.
Вот хорошая тема была. Временные таблицы и скорость работы
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 13:53 | #13 |
Участник
|
Kernel version: 5.0.1500.6491.
У вас воспроизводится под разными пользователями? На разных компьютерах? Кэш почистить, AOS перезагрузить ... У меня идеи кончились ( Последний раз редактировалось S.Kuskov; 24.03.2016 в 14:03. |
|
24.03.2016, 13:59 | #14 |
Участник
|
Цитата:
Еще вчера пытался. Не помогает. Аналогично.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 14:04 | #15 |
Участник
|
Поймал. Если скролить при помощи PageDown на нераспахнутом окне
|
|
24.03.2016, 14:07 | #16 |
Участник
|
У меня и колесом ловится. И в развернутом окне. Правда в развернутом долго искать приходится, глюк вылезает далеко.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
24.03.2016, 14:20 | #17 |
Участник
|
А если джоин убрать ?
Воспроизводится ? |
|
24.03.2016, 14:30 | #18 |
Участник
|
Нет, только при джоине. Причем только InnerJoin и OuterJoin. Остальные не глючат вроде.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 16:30 | #19 |
Участник
|
Форма ловли глюков
Вот, слегка проапгрейдил форму для ловли глюков.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) |
|
24.03.2016, 22:44 | #20 |
Гость
|
Цитата:
Включил на таблицах уникальный индекс по RecId, форма перестала что-то там подсвечивать. Видимо, это излечило глюк. В принципе можно и не по RecId, а любой уникальный индекс. Главное чтобы система могла отличить одну строку от другой. |
|
|
За это сообщение автора поблагодарили: Silence (1), Logger (1), Ace of Database (3), S.Kuskov (5). |
Теги |
баг, глюк, грид, дублирование |
|
|