![]() |
#1 |
Участник
|
![]()
Периодически при поиске ошибок просто необходимая вещь...
|
|
![]() |
#2 |
1C
|
Поставить точку останова в месте их вызова.
__________________
Разница между теорией и практикой на практике больше, чем в теории |
|
![]() |
#3 |
NavAx
|
ИМХО, никак. Ну или поиск по АОТ и установка точек останова на каждом doUpdate, doDelete, doInsert.
|
|
![]() |
#4 |
Участник
|
YVAS, это английский хумор такой специфичный?
![]() |
|
![]() |
#5 |
Участник
|
Цитата:
Изначально опубликовано raz
ИМХО, никак. Ну или поиск по АОТ и установка точек останова на каждом doUpdate, doDelete, doInsert. |
|
![]() |
#6 |
Участник
|
Если есть пчелы - значит должен быть мед - если есть метод DoUpdate - значит где-то есть его код.. Понятно что на слое sys он точно есть.. но может что-то связанное с выполнением этого кода.. другое место в системе какое-то доступное и привязаное к этому коду..
|
|
![]() |
#7 |
Модератор
|
Цитата:
Изначально опубликовано MironovI
Если есть пчелы - значит должен быть мед - если есть метод DoUpdate - значит где-то естьс его код.. Они напрямую выполняются. С Уважением, Георгий |
|
![]() |
#8 |
Участник
|
Уточните понятие "напрямую" - система все-таки должна где-то сгенерить запрос к базе и выполнить его.. Может копать надо не конкретный doInsert конкретной таблицы, а место связанное с вставкой изменением вообще.. типа Info.add()..
|
|
![]() |
#9 |
Administrator
|
Она генерит.... только ядром (ax32.exe). А туда аксаптийный отладчик не вхож
![]() Если только SQL Profiler (если у вас SQL Server) - но это уже на уровне базы. Есть и еще способ - перекрестные ссылки - и там отфильтровка по Read/Write... Но если они не построены - то проще искать по АОТ ![]() |
|
![]() |
#10 |
Участник
|
Неужто ядром? Я надеялся хотя бы на слой sys.. Все Reed/write можно конечно, но не в случае с таблицами типа LedgerTrans - попробовал посмотреть перекрестными ссылками где она используется.. десять минут уже ищет.. потом фильтрану по write будет еще десять минут - потом буду ставить лапы по 500 местам где этот LedgerTrans апдейтится - сколько по времени - ну не знаю - наши руки не для скуки
![]() ![]() |
|
![]() |
#11 |
Участник
|
Приблизительное, и не оочень красивое решение у меня конечно есть - включить журнализацию запросов к базе данных, найти код где эти запросы собственно фиксируются, поставить там в коде уловие типа IF('поискать в текте запроса нужную строку апдейта') и лапу на него.. но это уж край..
|
|
![]() |
#12 |
Administrator
|
слой sys означает что код все-таки есть. Изначально смысл методов do* состоит в том, чтобы сделать черное дело
![]() |
|
![]() |
#13 |
Участник
|
Цитата:
Изначально опубликовано MironovI
Приблизительное, и не оочень красивое решение у меня конечно есть - включить журнализацию запросов к базе данных, найти код где эти запросы собственно фиксируются, поставить там в коде уловие типа IF('поискать в текте запроса нужную строку апдейта') и лапу на него.. но это уж край.. |
|
![]() |
#14 |
Moderator
|
Возвращаясь к теме перекрестных ссылок, можно получить ссылки непосредственно на вызов метода doUpdate(), например, для LedgerTrans. У меня их получилось 12 штук. А дальше - лапа и т.д.
__________________
Андрей. |
|
![]() |
#15 |
MaratRZ@mail.ru
|
Добрый день!
Можно сделать следующим образом - вешаешь на таблицу триггер на удаление/добавление/изменение, который выдает ошибку, потом ставишь точку останова на Info/add и далее по стеку ... PHP код:
|
|
|
За это сообщение автора поблагодарили: Proba (1). |
![]() |
#16 |
Banned
|
Хороший вариант Marat предложил. А еще можно включить протоколирование базы данных и поставить breakpoint в метод \Classes\Application\logInsert().
|
|
![]() |
#17 |
Участник
|
Цитата:
Изначально опубликовано Dron AKA andy
Возвращаясь к теме перекрестных ссылок, можно получить ссылки непосредственно на вызов метода doUpdate(), например, для LedgerTrans. У меня их получилось 12 штук. А дальше - лапа и т.д. |
|
![]() |
#18 |
Участник
|
Цитата:
Изначально опубликовано EVGL
Хороший вариант Marat предложил. А еще можно включить протоколирование базы данных и поставить breakpoint в метод \Classes\Application\logInsert(). |
|
![]() |
#19 |
Участник
|
Цитата:
Изначально опубликовано MaratRZ
Добрый день! Можно сделать следующим образом - вешаешь на таблицу триггер на удаление/добавление/изменение, который выдает ошибку, потом ставишь точку останова на Info/add и далее по стеку ... PHP код:
![]() |
|
![]() |
#20 |
Moderator
|
Как получить ссылки на doUpdate() и другие используемые методы, невидимые в репозитар
Сервис / Средства разработки / Перекрестные ссылки / Объекты по именам.
Открывается форма "Объекты по именам" и вылезает запрос. В поле "Имя типа" вводится имя объекта (напр., название таблицы), в поле "Наименование" - название метода. Фильтр применяется, и в форме остаются только найденные объекты. Далее кнопарь "Чем используется" - и вуаля.
__________________
Андрей. |
|
|
За это сообщение автора поблагодарили: Logger (7), imir (1). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|