25.03.2011, 10:23 | #1 |
Участник
|
Глюк с RecID
Столкнулся с непонятным глюком в тройке, SP3:
ТО есть, зашло в цикл, а курсор указывает на несуществующую запись. И, "развитие глюка": Может, кто-то сталкивался?Заранее благодарен. Последний раз редактировалось sobik; 25.03.2011 в 10:26. |
|
25.03.2011, 10:38 | #2 |
Участник
|
Очень странно.
Т.е. это глюк дебагера, который не может корректно отобразить RecId, а на самом деле запись существует и выбирается? Остальные поля дебагер показывает? Что выведет info(strfmt("%1", InventTrans.RecId));? Что будет если явно задать выбираемые поля while select RecId, Qty from InventTrans ...? |
|
25.03.2011, 11:13 | #3 |
Участник
|
Деббагер показывает все верно. Когда компилятор пытается обратится к InventTrans.Qty, то выбрасывается ошибка :"Ссылка на несуществующий обьект". Т.Е., глюк именно в проверке истиннисти условий (RecID != 0).
|
|
25.03.2011, 11:20 | #4 |
Участник
|
Банальные шаманства типа сброса кэша на клиенте, переиндексации приложения, глобальной компиляции и т.п. не спасают ?
|
|
25.03.2011, 11:22 | #5 |
Участник
|
Гы.. А какой RecId у этой записи в базе данных?
|
|
25.03.2011, 11:28 | #6 |
Участник
|
"Шаманства" не помогают. РекИД нету, так как самой записи тоже нету.
|
|
25.03.2011, 11:33 | #7 |
Гость
|
глюк странный, мне в голову только приходит древний баг, когда recid == -256, что-то неправильно работало.
|
|
25.03.2011, 18:18 | #8 |
Участник
|
А не затаилась ли в какой нибудь переменной метода русская буковка ?
|
|
25.03.2011, 18:37 | #9 |
северный Будда
|
Это вряд ли. Тогда бы компилятор ругнулся.
__________________
С уважением, Вячеслав |
|
26.03.2011, 11:43 | #10 |
NavAx
|
Я бы для начала синхронизировал таблицу, мне это помогало от необъяснимых глюков при работе с таблицей.
Следующий шаг, удаление *.aoc файлов. |
|
26.03.2011, 19:30 | #11 |
MCP
|
А если добавить ради интереса return qty?
Понятно что в рассматриваемом примере это ну существенно, но мало-ли в 3-ке этот глюк как-то связан с отсутствием команды возврата? |
|
28.03.2011, 10:00 | #12 |
Участник
|
|
|
29.03.2011, 17:02 | #13 |
Участник
|
Судя по коду это у вас дисплей метод на форме.
А у вас случаем нет другого датасорса с именем InventTrans ? Или датасорса с по табличке InventTrans, но где то в коде есть присвоение локального буфера с типом InventTrans и глобального буфера (в пределах формы) от датасорса ? В свое время из-за этого наблюдались странные глюки. Попробуйте расположить дисплей метод на табличке, а не на форме. |
|
29.03.2011, 17:06 | #14 |
Участник
|
В общем отладчик может глючить отображая вам данные не из того экземпляра объекта.
Аналогично он глючит на табличных мапах. Если есть, например, мап tableMap, в котором объявлено поле c именем InventTransId, но при отображении на табличку InventJournalTrans ему соответствует поле InventTransIdFather, (т.е. tableMap.InventTransID этото же самое что InventJournalTrans.inventTransIdFather) то отладчик покажет значение из поля InventJournalTrans.inventTransId вместо поля InventJournalTrans.inventTransIdFather - то есть если есть поле с совпадающим именем, то он берет его значение вместо того чтобы использовать карту соответствия полей из определения табличного мапа ! Последний раз редактировалось Logger; 29.03.2011 в 17:11. |
|
Теги |
ax3.0, recid |
|
Похожие темы | ||||
Тема | Ответов | |||
Глюк с RecId в Ax 4.0 | 5 | |||
поля, содержащие RecId | 15 | |||
Глюк с RecId | 20 | |||
aEremenko: Дефрагментация RecID | 2 | |||
Два RecId у одной записи таблицы | 33 |
|