29.07.2011, 12:08 | #1 |
Участник
|
Просмотр [временных] таблиц в отладчике.
Пишу, скорее "на память" чтобы в следующий раз не пересоздавать код.
В продолжение этого совета ax2009 метод toString() в отладчике Суть проблемы: отладчик показывает только текущую запись во [временной] таблице. что приводит к сложностям при отладке. Чтобы было легче отлаживать код с [временными] таблицами, таблицы можно запихать записи в контейнер. А уж контейнеры отладчик показывает превосходно. для преобразования таблицы в контейнер в классе Global можно создать следующий метод: X++: // преобразует таблицу в контейнер (контейнеры удобно просматривать в отладчике) // если maxRecords = 0 то в контейнер попадут все записи из таблицы static server container table2con(Common common, int64 maxRecords = 10) { int64 i; Common _common = new DictTable(common.TableId).makeRecord(); container ret = connull(); ; // копируем записи, чтобы не сдвинуть курсор и ничего не изменить в исходной выборке if( common.isTmp() ) { _common.setTmp(); _common.setTmpData(common); } else { _common.data(common); } // перебираем записи while select _common { ++i; if( maxRecords > 0 && i > maxRecords ) { ret += ['...']; // в конец добавляем признак того, что в таблице есть и другие записи. break; // прерываем обработку, если нашли больше записей, чем запрошено в maxRecords } else { ret += [_common]; } } return ret; } можно поставить точку останова на return ret или сохранить результат выполнения где-нибудь для дальнейшего просмотра. будьте осторожны с модификатором server. метод должен выполняться там, где "живет" просматриваемая таблица. UPD: такой же подход можно применить для просмотра queryRun. Последний раз редактировалось mazzy; 29.07.2011 в 12:10. Причина: добавил про QueryRun |
|
|
За это сообщение автора поблагодарили: pitersky (2). |
Теги |
debugger, отладка, полезное |
|
|