Малюємо в SQL Server Management Studio

У стародавні часи взагалі не було графічних інтерфейсів. І моніторів теж не було, але це було вже зовсім давно. І вже тим більше – жодної графіки не було в утиліт, взаимодествовать з базою даних. Хоча сьогодні користувачам продуктів Microsoft напевно страшно уявити, що донині існують подібні продукти.

Наприклад, для підключення модему skylink до ноутбука однієї дуже відомої і "понтових" фірми, користувачеві доведеться чогось набирати в командному рядку однойменної операційної системи, яка чомусь вважається найбільш просунутої з точки зору користувача інтерфейсу!

А розробники, що використовують СУБД не менш "понтових" фірми, поки не встановлять "додаткових" утиліт, пишуть запити в строго текстовому інтерфейсі без підсвічування синтаксису.

Microsoft же йде по шляху "будь ближче до народу" і в кожній новій версії SQL Server радує невеликими удосконаленнями в області надання інформації у доданих до самого сервера утилітах.
Вже в SQL 2000 (та й раніше взагалі-то теж) були нормальний редактор запитів і табличне відображення їх результатів.
Також красиво відображалися плани запитів – у вигляді інтуїтивних зрозумілих піктограм і "стрілок".


У 2005 в SQL Srerv Management Studio (SSMS) додалася можливість при отриманні у вибірці xml даних, відкривати xml-документи одним щічкою миші.


У 2008 розробники додали крім усього іншого не тільки просторові типи даних, але і їхнє відображення прямо в SSMS.
Про що в тому числі розповів Микита Шамгунов (один з розробників SQL Server) на Платформі 2009:
http://platforma2009.ru/materials/showitem.aspx?MID=25e0f71e-9bb1-41b7-b03c-3897e69f42ea


Але здавалося б, навіщо розробнику або адміністратору така "краса", якщо він працює на фабриці або в банку?
Адже нічого "графічного" в базах таких підприємств, як правило, не зберігається …


Але є така річ, як діаграма Ганта. Вона, наприклад, використовується для відображення різного роду розкладів. Спробуємо намалювати таку діаграму прямо в 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


Тепер створимо і заповнимо таблицю "замовлень" з термінами їх виготовлення:
create table #orders (
      OrderNum varchar(10),
      StartDate datetime,
      EndDate datetime
      )
insert into #orders
select "1234", "2009-01-01", "2009-01-03" union all select "1235", "2009-01-03", "2009-01-06"
union all
select "1236", "2009-01-05", "2009-01-08" union all select "1237", "2009-01-07", "2009-01-08"
union all
select "1238", "2009-01-09", "2009-01-11" union all select "2231", "2009-01-02", "2009-01-03"
union all
select "2235", "2009-01-04", "2009-01-05" union all select "2238", "2009-01-06", "2009-01-08"
union all
select "2239", "2009-01-08", "2009-01-09" union all select "2240", "2009-01-10", "2009-01-12"


Зробивши вибірку з цієї таблиці
select OrderNum, dbo.OrderToPolygon (ROW_NUMBER () over (order by OrderNum desc), StartDate, EndDate)
from #orders


виявляємо небачену раніше закладку Spatial results

Можна включити в якості імен об'єктів на площині номери замовлень:


Тільки не питайте, як задавати колір геометричних фігур, добре? 😉
Все-таки це база даних, а не графічний редактор.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*