2013-03-08 4 views
1

Это будет очень общий вопрос. Я надеюсь найти какой-то инструмент или трюк в Visual Studio 2010, о которых я не знаю.Локализация ошибки в сложном приложении

Короче говоря, я беру на себя очень большое бухгалтерское заявление для компании; в документации нет комментариев и комментариев. Также у меня нет доступа к предыдущим разработчикам. Есть ошибка, с которой они нуждаются в исправлении сразу. В основном в базе данных появляется отрицательное число, и число должно быть положительным. Никто не знает, где в приложении происходит расчет или где данные фактически записываются в базу данных. Что-нибудь выпрыгивает на кого-либо, насколько выясняется, какой класс/функция это делает? Я мог наблюдать за базой данных, пропуская каждую строку кода, но это может занять несколько дней.

+0

Это слишком расплывчато, чтобы дать конкретный ответ, но попытались ли вы найти «Найти» в VS, чтобы найти имя таблицы или соответствующее имя столбца в источнике? После того, как вы нашли имя столбца/имя таблицы, затем выполните поиск способов использования метода, в котором он содержится, - если он находится в ORM, то поиск использования POCO или аналогичного - должно быть довольно легко отслеживать использование таким образом –

+1

, если ваша колонка обновляется в SP, вы можете найти SP с этим T-SQL select * из syscomments, где текст типа «% column-name%» AND (текст типа «% update%» или текст, например «% insert%») ve установил имя SP, затем используйте find в VS, чтобы найти, где он вызван от –

+0

Спасибо. Часть проблемы состоит в том, что данные могут поступать от SP или триггера (есть сотни), а не непосредственно от кода. –

ответ

0

Не тот ответ, который вам понравится, но если его повторяемость, вы можете приблизиться к нему, как двоичный поиск.

  1. Шаг за каждой процедурой до изменения значения.
  2. Повторите процедуру и выполните процедуру, которая изменила значение.
  3. Goto 1.

Pro

  • Это не займет у Вас дней
  • вы не должны думать об этом, делая это
  • Я был бы удивлен, если вы не нашли его после повторения этого несколько раз.

Против

  • не интересно делать вообще.
+0

Спасибо. Это может быть мое единственное обращение. –

+0

Последующий вопрос: как лучше всего контролировать столбцы базы данных во время отладки? Мне бы очень хотелось, чтобы каждый раз, когда я входил в новую часть кода, я продолжал обновлять/повторно запускать инструкцию select. –

+0

В зависимости от того, сколько энергии вы готовы потратить на это, вы можете написать небольшое (консольное) приложение или скрипт, который не более чем выполняет выбор в цикле и показывает окно сообщения, когда обнаружено изменение. Это освобождает вас от необходимости вручную обновлять, но не забудьте установить степень детализации обновления меньше, чем ваш «шаг за шагом скорости кода». –