powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Research Studio .NET
25 сообщений из 128, страница 5 из 6
Research Studio .NET
    #36868864
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)rstudio
для базы данных не хватает нормальной отладки,
нормального эксплорера по обьектам ( как дурачок сидишь и целыми днями набираешь за смену сотни


Всего для базы данных хватает, не свисти
Для Баттон1 программистов несомненно
...
Рейтинг: 0 / 0
Research Studio .NET
    #36868868
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychrstudioTolkarstudio
Весь дебаг идет по отчету, тоесть без физически выполняющегося приложения и базы данных на целевой машине. Только используя записанный отчет ( лог ).


т.е. ты, вытянув сырцы хранимки, идёшь по ней, подставляя значения входных параметров (как при этом ходит по всяким IF, используя объявленные и вычисленные внутри процедуры параметры, я не представляю). Ничего при этом не вычисляя заново, а просто отображая на каждом шаге значения залогированных параметров.


Да, именно так. Для поиска бага этого обычно достаточно.особенно, когда в хранимке есть нечто типа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
UPDATE dbo.delivery_hdr
   SET StateID =  5 
  FROM dbo.delivery_hdr dh
       INNER JOIN dbo.records r ON dh.ID = r.DeliveryID
                  INNER JOIN dbo.declaration_cargo dc ON r.ID = dc.RecordID
                             INNER JOIN (
    SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID
      FROM dbo.declaration_hdr d
               INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                          INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                     INNER JOIN (
        SELECT dh.ID DeliveryID, dh.StateID DeliveryState
          FROM dbo.declaration_hdr d
               INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                          INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                     INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
         WHERE d.ID = @declarationID 
        ) q ON r.DeliveryID = q.DeliveryID 
    ) q ON dc.DeclarationID = q.DeclarationID
 WHERE dh.StateID =  4  AND
       dh.ID NOT IN (
    SELECT dh.ID DeliveryID
      FROM dbo.delivery_hdr dh
           INNER JOIN (
        SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID, dh.StateID DeliveryState
          FROM dbo.declaration_hdr d
                   INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                              INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                         INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
                                         INNER JOIN (
            SELECT dh.ID DeliveryID, dh.StateID DeliveryState
              FROM dbo.declaration_hdr d
                   INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                              INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                         INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
             WHERE d.ID = @declarationID 
            ) q ON r.DeliveryID = q.DeliveryID 
         WHERE d.StateID NOT IN (  4 ,  5 ,  6  )
        ) q ON dh.ID = q.DeliveryID 
    );


Здесь и дебажить нечего. Это декларация
...
Рейтинг: 0 / 0
Research Studio .NET
    #36868962
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioЗдесь и дебажить нечего. Это декларацияособенно когда ошибка в запросе и апдейтятся не те строки, которые надо
но уровень, в общем-то понятен, вопросов больше не имею
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869020
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudio
Здесь и дебажить нечего. Это декларация

Декларации не содержат багов по определению.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869072
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioegorychrstudioTolkarstudio
Весь дебаг идет по отчету, тоесть без физически выполняющегося приложения и базы данных на целевой машине. Только используя записанный отчет ( лог ).


т.е. ты, вытянув сырцы хранимки, идёшь по ней, подставляя значения входных параметров (как при этом ходит по всяким IF, используя объявленные и вычисленные внутри процедуры параметры, я не представляю). Ничего при этом не вычисляя заново, а просто отображая на каждом шаге значения залогированных параметров.


Да, именно так. Для поиска бага этого обычно достаточно.особенно, когда в хранимке есть нечто типа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
UPDATE dbo.delivery_hdr
   SET StateID =  5 
  FROM dbo.delivery_hdr dh
       INNER JOIN dbo.records r ON dh.ID = r.DeliveryID
                  INNER JOIN dbo.declaration_cargo dc ON r.ID = dc.RecordID
                             INNER JOIN (
    SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID
      FROM dbo.declaration_hdr d
               INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                          INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                     INNER JOIN (
        SELECT dh.ID DeliveryID, dh.StateID DeliveryState
          FROM dbo.declaration_hdr d
               INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                          INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                     INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
         WHERE d.ID = @declarationID 
        ) q ON r.DeliveryID = q.DeliveryID 
    ) q ON dc.DeclarationID = q.DeclarationID
 WHERE dh.StateID =  4  AND
       dh.ID NOT IN (
    SELECT dh.ID DeliveryID
      FROM dbo.delivery_hdr dh
           INNER JOIN (
        SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID, dh.StateID DeliveryState
          FROM dbo.declaration_hdr d
                   INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                              INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                         INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
                                         INNER JOIN (
            SELECT dh.ID DeliveryID, dh.StateID DeliveryState
              FROM dbo.declaration_hdr d
                   INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                              INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                         INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
             WHERE d.ID = @declarationID 
            ) q ON r.DeliveryID = q.DeliveryID 
         WHERE d.StateID NOT IN (  4 ,  5 ,  6  )
        ) q ON dh.ID = q.DeliveryID 
    );


Здесь и дебажить нечего. Это декларация


SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID
SELECT d.ID DeclarationID, d.StateID DeclarationState, r.DeliveryID
SELECT dh.ID DeliveryID, dh.StateID DeliveryState

НАФИГА?????

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        SELECT dh.ID DeliveryID, dh.StateID DeliveryState
          FROM dbo.declaration_hdr d
               INNER JOIN dbo.declaration_cargo dc ON dc.DeclarationID = d.ID
                          INNER JOIN dbo.records r ON dc.RecordID = r.ID
                                     INNER JOIN dbo.delivery_hdr dh ON r.DeliveryID = dh.ID
         WHERE d.ID = @declarationID 
        ) q ON r.DeliveryID = q.DeliveryID 
Если учесть что дальше пошло поле только dh.ID DeliveryID то тут запросто может быть мультиплицирование.
Что курили составилители таких запросов?
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869123
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioGluk (Kazan)rstudio
для базы данных не хватает нормальной отладки,
нормального эксплорера по обьектам ( как дурачок сидишь и целыми днями набираешь за смену сотни


Всего для базы данных хватает, не свисти
Для Баттон1 программистов несомненно

Обоснуешь? Может это просто мозгов кому то не хватает, чтобы хранимый код отлаживать ???
Давай по пунктам, что именно тебе не хватает для отладки ХП?

Модератор: Полегче, товарищ.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869181
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaЧто курили составилители таких запросов?вы где-то прочитали просьбу помочь его улучшить?
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869568
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNrstudio
Здесь и дебажить нечего. Это декларация

Декларации не содержат багов по определению.

содержат.
Но их никто и нигде не дебажит.
Как и не дебажат декларации на страницах html, xml, aspx, ascx и так далее
Не дебажит это и любой дебагер Майкрософт и других производителей.

Были идеи разложить запрос на составляющие, но задача весьма не тривиальна.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869615
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щас начнется
...
Рейтинг: 0 / 0
Research Studio .NET
    #36869626
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizщас начнется

Уже все кончилось
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871830
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всеже немного соврал когда сказал что декларации не дебажится.
Они то не дебажатся, но вот в диалоговом окне Statement Details которые вызывается из профайлера можно получить несколько полезных скриптов для отладки процедуры.

Вот как выглядит это окно для вызваной AddNode хранимки
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871834
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь можно глянуть оригинальный текст хранимки
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871839
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь подставляются параметры, поэтому если чтото сбоит достаточно просто копировать декларации внутри процедуры в другое окно и просто выполнять. Очень удобно не нужно подставлять параметры
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871843
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871845
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и здесь скрипт для запуска хранимки, если понадобится запустить хранимку с другими параметрами. Снова копируем вставляем и дебажим в окне квери аналайзера
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871887
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudio, что будет, если ошибку выдаёт триггер на инсерт таблицы dbo.Node? и в триггере активно пользуется таблица Inserted? а если таких триггеров несколько? и как мне вообще дебажить хранимку с инсертом без наличия развёрнутой базы?
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871912
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychrstudio, что будет, если ошибку выдаёт триггер на инсерт таблицы dbo.Node? и в триггере активно пользуется таблица Inserted? а если таких триггеров несколько? и как мне вообще дебажить хранимку с инсертом без наличия развёрнутой базы?

ну триггеры по идее тоже отлично дебажатся.
Тоесть на инсерт по F11 ты зайдешь внутрь выполнившегося триггера и пойдешь пошагово по его телу. Не помню или у меня сейчас такое работает, но архитектура позволяет такое сделать.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871925
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudio, так а если их несколько? - порядок выполнения триггеров неопределён, напоминаю. И откуда возьмётся в триггере таблица Inserted, если у меня нет реальной базы?
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871958
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychrstudio, так а если их несколько? - порядок выполнения триггеров неопределён, напоминаю. И откуда возьмётся в триггере таблица Inserted, если у меня нет реальной базы?

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

И наверное смешно было бы ожидать чтобы студия забекапила тебе базу с последними данными и сформировала отчет по которому можно восстановить отладку даже на голом нетбуке, где стоит Ресерч Студия и Виндовс. Бекапа нет и для многих хотфиксов он не нужен. Я недавно потратил два дня на отладку одной хранимки на продакшин базе. Просто какието чудеса творились, хотя если бы был отчет с включенными триггерами сразу бы все стало на свои места.

Моя студия тебе покажет все шаги которые выполнялись в хранимках и триггерах и покажет значения переменных на машине клиента/тестера. А также выдаст простые скрипты хранимок, которые чтобы запустить достаточно скопировать.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36871981
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioИ наверное смешно было бы ожидать чтобы студия ... сформировала отчет по которому можно восстановить отладку даже на голом нетбуке, где стоит Ресерч Студия и Виндовспосле чтения твоего манифеста в самом начале топика складывается мнение, что именно так всё и происходит ;-))
То есть, если я правильно понимаю, твоя студия выдаст мне лог в случае, если произойдёт сбой. Это важный, конечно, но, к сожалению, не единственный, да и не самый большой класс задач, которые решаются при отладке.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36872024
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychrstudioИ наверное смешно было бы ожидать чтобы студия ... сформировала отчет по которому можно восстановить отладку даже на голом нетбуке, где стоит Ресерч Студия и Виндовспосле чтения твоего манифеста в самом начале топика складывается мнение, что именно так всё и происходит ;-))


Ну вот мы углубились в области отладки баз данных, которые вскользь упомянута в том 18ти страничном документе и уже понятно что никакими плагинами Майкрософт студию не довести до такого уровня. То что у Майкрософт это можно сказать вчера, у меня прототип на сегоднешний день и есть много идей на послезавтрашний. Но невозможно все реализовать одними руками работаю на основной работе :) Можно только экспериментировать.

egorych
То есть, если я правильно понимаю, твоя студия выдаст мне лог в случае, если произойдёт сбой. Это важный, конечно, но, к сожалению, не единственный, да и не самый большой класс задач, которые решаются при отладке.

Представь, если бы все логировать настолько полно, что можно было бы эмулировать работу приложения в момент бага, то больше половины багов можно было бы фиксить не восстанавливая базу данных. Итак по логу/отчету понятно где пошел сбой
...
Рейтинг: 0 / 0
Research Studio .NET
    #36872069
mayton_offline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rstudioздесь подставляются параметры, поэтому если чтото сбоит достаточно просто копировать декларации внутри процедуры в другое окно и просто выполнять. Очень удобно не нужно подставлять параметры
Я не пойму, зачем ты это всё описываешь. Это никому не интересно ИМХО. Сплошные частные случаи. А если у меня другая СУБД ?
...
Рейтинг: 0 / 0
Research Studio .NET
    #36872133
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton_offlineСплошные частные случаи. А если у меня другая СУБД ?
вся жизнь - это череда частных случаев. Если у тебя другая СУБД, то значит этот частный случай не твой.
...
Рейтинг: 0 / 0
Research Studio .NET
    #36872259
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioПредставь, если бы все логировать настолько полно, что можно было бы эмулировать работу приложения в момент бага, то больше половины багов можно было бы фиксить не восстанавливая базу данных. Итак по логу/отчету понятно где пошел сбойбоюсь даже представить насколько просядет производительность и сколько узких мест и потенциальных дырок для взлома мы таким образом создадим )))
rstudioи уже понятно что никакими плагинами Майкрософт студию не довести до такого уровняи почему это стало понятно, интересно? в чём принципиальное отличие твоего текстового редактора от встроенного в студию? ( ты же не хочешь нам сказать, что в студии невозможно сделать copy-paste текста из одного окна в другое? )
...
Рейтинг: 0 / 0
Research Studio .NET
    #36872364
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Просядет производительность на ерунду, доказано опытно. Плагинами сделать я не знаю сколько, сквозной дебаг, лейт отладка, профайлер встроеный, окно деталей с готовыми скриптами, дебаг тригеров и тд. Это только то что относится к бд. Сколько потребуется времени работать на доброе имя Мафкрософт даже не хочу знать. В свою студию каждую новую фичу добавляю за пару вечеров или неделю. Например фолдинг схлопывание в скриптах прикрутил за пару вечеров, тригеры дебажить, неделька времени. А мелкософт студия это хрень на которую нужно пртратить хренову кучу человеко месяцев и лет чтобы довести до ума все фичи, по отдельности. Втопку, еслиб хоть за это платили
...
Рейтинг: 0 / 0
25 сообщений из 128, страница 5 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Research Studio .NET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]