Рисуем в SQL Server Management StudioИсточник: gotdotnet
В стародавние времена вообще не было графических интерфейсов. И мониторов тоже не было, но это было уже совсем давно. И уж тем более - никакой графики не было у утилит, взаимодествовавших с базой данных. Хотя сегодня пользователям продуктов Microsoft наверное страшно представить, что по сей день существуют подобные продукты. Например, для подключения модема skylink к ноутбуку одной очень известной и "понтовой" фирмы, пользователю придется чего-то набирать в командной строке одноименной операционной системы, которая почему-то считается самой продвинутой с точки зрения пользовательского интерфейса! А разработчики, использующие СУБД не менее "понтовой" фирмы, пока не установят "дополнительных" утилит, пишут запросы в строго текстовом интерфейсе без подсветки синтаксиса. Microsoft же идет по пути "будь поближе к народу" и в каждой новой версии SQL Server радует небольшими усовершенствованиями в области представления информации в прилагаемых к самому серверу утилитах. В 2005 в SQL Srerv Management Studio (SSMS) добавилась возможность при получении в выборке xml данных, открывать xml-документы одним щечком мыши. В 2008 разработчики добавили помимо всего прочего не только пространственные типы данных, но и их отображение прямо в SSMS. Но казалось бы, зачем разработчику или администратору такая "красота", если он работает на фабрике или в банке? Но есть такая вещь, как диаграмма Ганта. Она, например, используется для отображения разного рода расписаний. Попробуем нарисовать такую диаграмму прямо в SSMS, одним запросом. Для начала - создадим функцию, которая преобразует временной диапазон в соответствующий прямоугольник на плоскости: create function OrderToPolygon(@NUM int, @StartDate datetime, @EndDate datetime) returns geometry as begin return(geometry::STGeomFromText('POLYGON (( '+CONVERT(varchar(10), datediff(dd, '2009-01-01', @StartDate))+' '+CONVERT(varchar(10), @NUM)+', '+CONVERT(varchar(10), datediff(dd, '2009-01-01', @StartDate))+' '+CONVERT(varchar(10), @NUM+1)+', '+CONVERT(varchar(10), 1+datediff(dd, '2009-01-01', @EndDate))+' '+CONVERT(varchar(10), @NUM+1)+', '+CONVERT(varchar(10), 1+datediff(dd, '2009-01-01', @EndDate))+' '+CONVERT(varchar(10), @NUM)+', '+CONVERT(varchar(10), datediff(dd, '2009-01-01', @StartDate))+' '+CONVERT(varchar(10), @NUM)+'))', 0)) end Теперь создадим и заполним таблицу "заказов" со сроками их изготовления: Сделав выборку из этой таблицы обнаруживаем невиданную ранее закладку Spatial results Можно включить в качестве имен объектов на плоскости номера заказов: Только не спрашивайте, как задавать цвет геометрическим фигурам, хорошо? ;) |