Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7   вперед  Ctrl      все
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Mnior,

1. как проверяется
Текст запроса парсится в дерево, которое обходится и ищутся узлы, подпадающие под критерии поиска.
В "полной версии" можно реализовывать свои правила (хотя это довольно таки муторное занятие, надо сказать).
Под "полной версией" я подразумеваю всё решение, а не только то, что вошло в текущую инсталляцию.
В ней имеется также командно-строчная утилита, checkin policy для TFS, API для интеграции в собственные проекты, API для написания собственных правил. Однако заниматься этим особо нет ни времени, ни возможности, засим всё это остается в рамках "песочницы".

2. Анализ сложности кода - надеюсь, кто-то да оценит единицу сложности кода "P" (parrot)
Это в основном - концепт, заготовка, т.к. беглый поиск не дал никаких иных внятных метрик кроме LOC, которая в данном случае не слишком то и применима.

3. От оутлайнера до форматтера - бесконечная пропасть, на самом то деле. И одной, но весьма немаловажной проблемой является проблема размещения комментариев.

4. Выгружать dependencies в какой-то удобоваримый формат (например, xml, который чудесно разбирается при помощи XQuery) - можно сделать.

5. как оно в будущем - понятия не имею. Может и выложу на кодеплекс как-нить. продать мс - занятно, забавно, интересно - но врядли. Если бы МС такое было бы нужно - уже бы и сами написали, с куда меньшими затратами и с куда бОльшим качеством.
А с donate возится... Пока неохота, если честно. "достаточно "большого спасибо"" :)
21 авг 12, 23:18    [13046255]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
2locky: Вот. Выражаю свое большое спасибо. 4 таски на исправление по результатм двух часов "игры" с этой штукой я уже нарисовал.

locky
Если бы МС такое было бы нужно - уже бы и сами написали, с куда меньшими затратами и с куда бОльшим качеством.
Говорят, у МС уже есть какой-то парсер T-SQL кода, и что-то даже можно чекать VS-проектах.
21 авг 12, 23:43    [13046378]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Гавриленко Сергей Алексеевич
2locky: Вот. Выражаю свое большое спасибо. 4 таски на исправление по результатм двух часов "игры" с этой штукой я уже нарисовал.

locky
Если бы МС такое было бы нужно - уже бы и сами написали, с куда меньшими затратами и с куда бОльшим качеством.
Говорят, у МС уже есть какой-то парсер T-SQL кода, и что-то даже можно чекать VS-проектах.


Не за что :)

Я вам больше скажу - у MS не менее 4-х разных более-менее доступных для использования парсеров
Последний из них вышел с 2012 сервером
Отличный парсер - быстрый, правильный, с полной поддержкой грамматик (в отличие от моего, который поддерживает "достаточно") и всё такое.
Одна проблема - результат его работы достаточно сложно использовать
Хотя и можно :)
21 авг 12, 23:49    [13046404]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
locky,

Да - интересный проект.
1. Долго вы над ним работаете ?
2. Я так понимаю что весь парсинг 100% свой. Как насчёт поддержки новых языковых элементов новых версий SQL Server-а ? (2012 ?)
3. А чего нету версии для 2012 ? если проблемы с внедрением - то могу помочь. Я тоже разрабатываю адд-ин SSMSBoost(.com). Он ориентирован на улучшение удобства работы с SSMS. Я там опубликовал каркас плагина для 2012 с исходниками - может поможет
4. Не могли бы вы перечислить 4 парсера от майкрософта ? Интересно - может мы что-то да и внедрим к себе..
5. Да - анализ у вас довольно быстро идёт - вы используете напрямую syscomments или SMO scripting ? (думаю первое...)

Андрей
22 авг 12, 00:34    [13046555]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
AndreiRantsevich
locky,

Да - интересный проект.
1. Долго вы над ним работаете ?
2. Я так понимаю что весь парсинг 100% свой. Как насчёт поддержки новых языковых элементов новых версий SQL Server-а ? (2012 ?)
3. А чего нету версии для 2012 ? если проблемы с внедрением - то могу помочь. Я тоже разрабатываю адд-ин SSMSBoost(.com). Он ориентирован на улучшение удобства работы с SSMS. Я там опубликовал каркас плагина для 2012 с исходниками - может поможет
4. Не могли бы вы перечислить 4 парсера от майкрософта ? Интересно - может мы что-то да и внедрим к себе..
5. Да - анализ у вас довольно быстро идёт - вы используете напрямую syscomments или SMO scripting ? (думаю первое...)

Андрей


1. что-то около 4-5 лет
2. Грамматика 2012, по идее, должна поддерживаться. По крайней мере whats new я вносил и тестил на примерах из BOL, но ввиду относительной новизны - это немного сыровато
3. В очередной раз поменялась работа с ССМС - регистрация и всё такое, некогда было толком разбираться - что и как там делать, дабы оно нормально работало как с 2012, так и вкупе с остальными версиями. За ссылку - спасибо.
4. Перечислить - увы, не могу (за исключением парсера из комплекта 2012). Я специально за ними не следил, просто вспомнилось. Но был парсер в комплекте студии, был парсер в комплекте BPA. В принципе, только 2012 "официально" доступен для использования, но.. в общем, разработчики в очередной раз не обратили внимания на буквально слёзные просьбы ну так сделать так, чтоб его можно было использовать.Впрочем, если извернуться на пупе - то можно и заюзать. Остальные то значительно хуже были. А у 2012 - даже форматтер есть.
5. object_definition()+ sys.tables/columns/types/etc
22 авг 12, 00:45    [13046580]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
Mnior
invm
С TRY/CATCH аналогично.
А как вы это определили, если TRY/CATCH ловит только первое сообщение?
Не важно сколько ошибок ловит catch, важно, что если транзакция внешняя и в нем сделать rollback, то после выхода из процедуры будет ошибка 266.
22 авг 12, 01:09    [13046623]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Acce_Ekb
Member

Откуда: Екатеринбург
Сообщений: 87
Вот в таких случаях, по-моему, можно не предупреждать об Asterisk in select list

select ..
  from dbol.MyTable t1
  where ...
   and not exists ( select *  -- !!!
                      from dbo.MyTable2 t2 
                      where ... 
                   )
22 авг 12, 10:24    [13047385]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Acce_Ekb
Вот в таких случаях, по-моему, можно не предупреждать об Asterisk in select list

select ..
  from dbol.MyTable t1
  where ...
   and not exists ( select *  -- !!!
                      from dbo.MyTable2 t2 
                      where ... 
                   )

вроде и не предупреждает (* под [NOT] EXISTS)
22 авг 12, 10:36    [13047464]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
declare @t table(id int,i int)
insert into @t
values(1,2)

insert into @t
select 1,2

Не ругается на insert without column list
22 авг 12, 10:58    [13047600]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
denis2710
declare @t table(id int,i int)
insert into @t
values(1,2)

insert into @t
select 1,2

Не ругается на insert without column list

Для table var проверка не проводится.
можно было бы сделать опцию, но я пока не придумал как это нормально отобразить в GUI
22 авг 12, 11:03    [13047629]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Zoiberg
Guest
locky,

Я канешн дико извиняюсь, но как стартануть эту тулзу?
Инсталяция, а дальше...
22 авг 12, 11:12    [13047707]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Zoiberg
locky,

Я канешн дико извиняюсь, но как стартануть эту тулзу?
Инсталяция, а дальше...

а дальше в SSMS в меню Tools повятся 3 новых пункта - CodeGuard, Outline и Dependencies.
22 авг 12, 11:16    [13047754]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Kraft_o
Member

Откуда:
Сообщений: 87
У меня не появилось дополнительных пунктов, правда у меня версия русская
22 авг 12, 11:52    [13048081]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Kraft_o
У меня не появилось дополнительных пунктов, правда у меня версия русская

какая версия SSMS?
22 авг 12, 11:54    [13048093]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
locky
Kraft_o
У меня не появилось дополнительных пунктов, правда у меня версия русская

какая версия SSMS?


Аналогично
Microsoft SQL Server Management Studio 10.50.1617.0
Клиентские средства служб Microsoft Analysis Services 10.0.4064.0
Компоненты доступа к данным (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 5.0 6.0
Microsoft Internet Explorer 9.0.8112.16421
Microsoft .NET Framework 2.0.50727.5456
Операционная система 6.1.7601
22 авг 12, 12:00    [13048164]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Kraft_o
Member

Откуда:
Сообщений: 87
Microsoft SQL Server Management Studio 10.50.2796.0
22 авг 12, 12:00    [13048168]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
VladislavVV
Member

Откуда:
Сообщений: 985
у меня тоже ничего не появилось

версии:

Microsoft SQL Server Management Studio 9.00.1399.00
Клиентские средства служб Microsoft Analysis Services 2005.090.1399.00
Компоненты доступа к данным (MDAC) 6.1.7601.17514 (win7sp1_rtm.101119-1850)
Microsoft MSXML 3.0 4.0 5.0 6.0
Microsoft Internet Explorer 9.0.8112.16421
Microsoft .NET Framework 2.0.50727.5456
Операционная система 6.1.7601
22 авг 12, 12:00    [13048173]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Ага. там ведь нету меню Tools, там, небось, "Инструменты"
22 авг 12, 12:10    [13048259]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
locky
Ага. там ведь нету меню Tools, там, небось, "Инструменты"

Ну вот,как -то нет.

К сообщению приложен файл. Размер - 15Kb
22 авг 12, 12:49    [13048538]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
SSMS Tools - это чего такое?
22 авг 12, 13:01    [13048652]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
d-Rat
Member

Откуда: Москва
Сообщений: 1
Прекрасный инструмент, большое спасибо :)

Из пожеланий:

1. В списке issues хотелось бы видеть возможность проверки вызова хранимых процедур без именнованных параметров.
Например:
exec dbo.Proc1 1, 10

вместо
exec dbo.Proc1 @param1 = 1, @param2 = 10


2. Возможность настройки различных сетов проверки (строгая проверка и более мягкая). Применимо на разных этапах подготовки кода - в момент проверки при разработке и ревью все проверяем строго, непосредственно перед выкладкой на продакшен контрольных чек только критических ошибок.

3. Возможность интеграции с TFS и подобными системами. Было бы здорово иметь возможность настроить рул, который не позволит зачекинить неправильный код.
22 авг 12, 13:02    [13048665]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
locky
4. Перечислить - увы, не могу (за исключением парсера из комплекта 2012). Я специально за ними не следил, просто вспомнилось. Но был парсер в комплекте студии, был парсер в комплекте BPA. В принципе, только 2012 "официально" доступен для использования, но.. в общем, разработчики в очередной раз не обратили внимания на буквально слёзные просьбы ну так сделать так, чтоб его можно было использовать.Впрочем, если извернуться на пупе - то можно и заюзать. Остальные то значительно хуже были. А у 2012 - даже форматтер есть.


А как полностью называется этот "хороший" парсер 2012 ? Можно ссылку ? Я просто этим вопросом не занимался, но это интересно ! Может встроим в наш ssmsboost.
22 авг 12, 13:04    [13048679]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
AndreiRantsevich
locky
4. Перечислить - увы, не могу (за исключением парсера из комплекта 2012). Я специально за ними не следил, просто вспомнилось. Но был парсер в комплекте студии, был парсер в комплекте BPA. В принципе, только 2012 "официально" доступен для использования, но.. в общем, разработчики в очередной раз не обратили внимания на буквально слёзные просьбы ну так сделать так, чтоб его можно было использовать.Впрочем, если извернуться на пупе - то можно и заюзать. Остальные то значительно хуже были. А у 2012 - даже форматтер есть.


А как полностью называется этот "хороший" парсер 2012 ? Можно ссылку ? Я просто этим вопросом не занимался, но это интересно ! Может встроим в наш ssmsboost.


давайте уже как-то двигаться , а то я в частности жду нахождение соответствующих begin ... end в скрипте

22 авг 12, 13:13    [13048744]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Гавриленко Сергей Алексеевич
SSMS Tools - это чего такое?

http://www.ssmstoolspack.com/
22 авг 12, 13:16    [13048763]     Ответить | Цитировать Сообщить модератору
 Re: SqlCodeGuard - бесплатный addin для SSMS  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
AndreiRantsevich
locky
4. Перечислить - увы, не могу (за исключением парсера из комплекта 2012). Я специально за ними не следил, просто вспомнилось. Но был парсер в комплекте студии, был парсер в комплекте BPA. В принципе, только 2012 "официально" доступен для использования, но.. в общем, разработчики в очередной раз не обратили внимания на буквально слёзные просьбы ну так сделать так, чтоб его можно было использовать.Впрочем, если извернуться на пупе - то можно и заюзать. Остальные то значительно хуже были. А у 2012 - даже форматтер есть.


А как полностью называется этот "хороший" парсер 2012 ? Можно ссылку ? Я просто этим вопросом не занимался, но это интересно ! Может встроим в наш ssmsboost.


Microsoft.SqlServer.TransactSql.ScriptDom.TSql110Parser и т.п.
лежит в Microsoft® SQL Server® 2012 Transact-SQL Language Service в Microsoft® SQL Server® 2012 Feature Pack ( http://www.microsoft.com/en-us/download/details.aspx?id=29065 )
22 авг 12, 13:26    [13048858]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить