14 ноября, среда 05:49
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

В какой процедуре генерится сообщение об ошибке?

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • В какой процедуре генерится сообщение об ошибке?

    Доброго времени суток.

    Как узнать, какая процедура сгенерила сообщение об ошибке и (желательно) на каких входных параметрах?
    Известно, с какой процедуры начинается цепочка процедур.
    Спасибо.

  • #2
    Гм. В общем случае это сделать непросто. Если скрипты пролиты для отладки, то это частенько помогает.
    Некоторое время я писал, что ошибки возвращаются по разному. Иногда это просто RetCode. Тогда нужно его определить и ... запускать поиск по скриптам. Иногда это текст - тогда можно искать его.
    Но ничего из описанного может и не дать однозначного и понятного результата.

    Комментарий


    • #3
      Сообщение от loo Посмотреть сообщение
      Гм. В общем случае это сделать непросто. Если скрипты пролиты для отладки, то это частенько помогает.
      Некоторое время я писал, что ошибки возвращаются по разному. Иногда это просто RetCode. Тогда нужно его определить и ... запускать поиск по скриптам. Иногда это текст - тогда можно искать его.
      Но ничего из описанного может и не дать однозначного и понятного результата.
      Хм, как все запущено...
      ИМХО, если бы в сообщении об ошибке всегда было имя процедуры, в которой она сгенерилась, это всем существенно облегчило бы жизнь.
      И вообще. Уж коль скоро разработчик не может обеспечить нормального качества продукта - обеспечил бы хотя бы инструменты и создал условия для быстрого диагностирования ошибок.

      Комментарий


      • #4
        Сообщение от zbc Посмотреть сообщение
        Доброго времени суток.

        Как узнать, какая процедура сгенерила сообщение об ошибке и (желательно) на каких входных параметрах?
        Известно, с какой процедуры начинается цепочка процедур.
        Спасибо.
        Поставить SQL Дебаггер или подобную прогу для других платформ.
        Есть минус, если процедура тянет за собой еще штук 15 надо понимать, какую из них в процессе отладки пропустить за ненадобностью.

        Создаешь свою СП с жестко забитыми входными параметрами и дебагишь её, они начинает дёргать цепочку других СП и понеслось...

        P.S. Я, кстати, встечал в Диасофте сообщения о конкретной процедуре которая вернула ошибку. Но не везде. А потом, какой смысл, если эта процедура дочерняя, которая вызывается через цепочку других то что это тебе даст?

        Комментарий


        • #5
          по базе SYBASE может помочь такой поиск:

          -- поиск по тексту всех store procedure --
          select obj.Name, ttt.text -- порции по 255 символов
          from dbo.sysobjects obj
          join dbo.syscomments ttt on ttt.id = obj.id
          where ttt.text like '%буковки_сообщения%' -- строка поиска --
          order by obj.Name, ttt.colid

          Комментарий


          • #6
            Сообщение от CostYa Посмотреть сообщение
            P.S. Я, кстати, встечал в Диасофте сообщения о конкретной процедуре которая вернула ошибку. Но не везде. А потом, какой смысл, если эта процедура дочерняя, которая вызывается через цепочку других то что это тебе даст?
            Часто ошибки возникают из-за некорректных с точки зрения разработчика модуля параметров. То есть разработчики закладываются на определенную комбинацию значений данных, и если введенные данные отличаются от ожидаемого, вылетает какая-нибудь страшная ошибка. Чтобы понять, в чем дело, надо либо досконально знать бизнес логику: и тогда внимательно проанализировав используемые данные понять, что именно может быть не вполне корректно; либо найти тот кусок кода, на котором сненерилась ошибка, и понять почему. Иногда достаточно просто посмотреть на код, чтобы разобраться - сложно просто найти нужный кусок.
            Сообщение от CostYa Посмотреть сообщение
            Поставить SQL Дебаггер или подобную прогу для других платформ.
            А какие есть SQL-дебаггеры? Я знаю dbArtizan-е есть какие-то элементы, связанные с отладкой, но полноценно пользоваться у меня этим не получалось. И вообще: а что должен уметь делать SQL-дебаггер?
            Отслеживание последовательности вызова процедур: как это по научному называется? Вот эта штука для отладки была бы удобна.
            Да, еще хотелось бы взлянуть на описание системы обработки ошибок в диасе. Нет ли у кого такого документа?

            Комментарий


            • #7
              Поздравляю, господа.
              В документации (core_adm.chm) появился раздел 8 "Диагностика ошибок системы" !!!

              Комментарий


              • #8
                Номер строки и процедуру можно увидеть, если включить окно сообщений (в
                deal32.ini ShowSQLMessage=on)

                Комментарий

                Пользователи, просматривающие эту тему

                Свернуть

                Присутствует 1. Участников: 0, гостей: 1.

                Обработка...
                X