Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

9.2.2. Общие приемы работы с объектами SMO

Общие свойства и методы объектов SMO, пути URN (Unique Resource Name),  коллекции SMO

Прежде чем приступать к рассмотрению конкретных объектов SMO, опишем свойства и методы, которые являются общими для всех объектов SMO. Эти свойства и методы во многих ситуациях могут оказаться очень полезными. Вначале остановимся на свойствах:

q      Properties — это свойство возвращает коллекцию Properties с объектами Property, представляющими свойства данного объекта. При помощи объекта Property можно получить информацию об имени свойства, его значении, типе, возможности изменения и т. п. Согласно документации, при помощи свойства Properties можно программным путем получить информацию о всех свойствах любого объекта SMO. На практике это не так: многих свойств в этой коллекции почему-то обнаружить не удается. Например, из всех многочисленных свойств объекта SMO.Server в эту коллекцию попало только свойство InstanceName;

q      State — при помощи этого свойства можно получить информацию о состоянии объекта SMO. Для него предусмотрено пять значений:

·                Creating (0) — в данный момент происходит создание объекта;

·                Dropped (1) — в данный момент объект удаляется;

·                Existing (2) — нормальное состояние объекта. Он существует, и ничего особенного с ним не происходит;

·                Pending (3) — для этого объекта в очереди на выполнение стоит какая-то команда;

·                ToBeDropped (4) — для этого объекта в очереди на выполнение стоит команда на его удаление;

q      Urn — важнейшее свойство объектов SMO. Определяет имя объекта и путь к нему в иерархии объектов SQL Server в специальном формате URN. URN для любого объекта уникален. Например, URN для объекта логина может выглядеть так:

Server[@Name='LONDON7\SQL2005']/Login[@Name='sa']

В SMO очень удобно находить любой объект по его адресу URN. Для получения ссылки на объект по URN можно использовать метод объекта SMO.Server, который называется GetSMOObject().

q      UserData — это свойство можно использовать для размещения какой-либо пользовательской информации об объекте (например, как флаг обработки при выполнении каких-то операций в несколько приемов).

Для объектов SMO предусмотрены также методы, которые фактически являются общими — они есть у большинства объектов:

q      Alter() — этот метод вызывается после внесения изменений в свойства данного объекта для того, чтобы эти изменения были сохранены;

q      Grant(), Deny(), Revoke() — эти методы позволяют соответственно предоставить кому-либо разрешения, наложить явный запрет и отменить ранее предоставленные разрешения и запреты на объект в иерархии SQL Server;

q      Refresh() — этот метод заново получает информацию об объекте в базе данных (если объект мог измениться в обход вашей программы);

q      Script() — этот метод используется для генерации в соответствии с указанными параметрами скрипта Transact-SQL, который позволит воссоздать данный объект.

Отметим еще один момент. В SMO многие объекты сгруппированы в коллекции. Например, в объект SMO.Server встроена коллекция DatabaseCollection, для каждой базы данных предусмотрены коллекции TableCollection и ViewCollection и т. п. У большинства этих коллекций одинаковые свойства и методы:

q      Count — это свойство позволяет получить информацию о количестве элементов в коллекции (например, количество таблиц в базе данных);

q      Item — ссылка на конкретный элемент в коллекции. Всегда можно получить такую ссылку по номеру элемента, а в большинстве случаев и по его имени;

q      Parent — ссылка на родительский объект, которому принадлежит эта коллекция;

q      Contains() — этот метод позволяет проверить, находится ли в коллекции объект с указанным именем (иногда можно произвести такую проверку и по другим свойствам элементов коллекции);

q      CopyTo() — этот метод копирует все элементы коллекции в одномерный массив. При этом можно определить номер для первого элемента. Этот метод можно использовать, например, когда нужно получить общий список объектов из нескольких коллекций.

Для всех коллекций можно использовать синтаксическую конструкцию For Each. Во многих ситуациях она может быть очень удобна. Например, получить информацию о всех логинах можно так:

For Each oLogin In oSrv.Logins

MsgBox(oLogin.Name)

Next

Отметим также один момент, непривычный для администраторов и разработчиков, привыкших работать с SQL-DMO. В SQL-DMO создание новых объектов (логинов, заданий SQL Server Agent и т. п.) производится при помощи метода Add() соответствующей коллекции. В SMO такой метод для коллекций не предусмотрен. Создание объектов теперь производится при помощи конструктора, которому передаются соответствующие параметры (объект сервера, базы данных и т. п.).

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru