|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
9.2.4. Объект SMO.DatabaseОбъект SMO.Database, коллекции объектов в базах данных, методы ExecuteNonQuery и ExecuteWithResults В предыдущем разделе вы познакомились с тем, как при помощи объекта SMO.Server подключаться к SQL Server и выполнять некоторые операции на уровне всего сервера. Однако чаще всего вам нужно производить выполнение программных операций с базами данных и их объектами — таблицами, представлениями, индексами, хранимыми процедурами, пользователями и ролями баз данных и т. п. Для того чтобы выполнить какие-то операции с базой данных или получить доступ к ее объектам, необходимо получить ссылку на эту базу данных при помощи объекта SMO.Database. Чтобы получить ссылку на объект базы данных (т. е. создать объект SMO.Database), в SMO чаще всего применяют два способа: 1. Использовать свойство Item коллекции DatabaseCollection, доступ к которой производится при помощи свойства Databases объекта SMO.Server. Например, чтобы обратиться к базе данных db1 на сервере LONDON\Server2, можно использовать код вида: Dim oSrv As New Server("LONDON\Server2") Dim oDB As Database oDB = oSrv.Databases.Item("db1") 2. Получить ссылку на объект при помощи идентификатора URN: Dim oDB As Database oDB = _ oSrv.GetSmoObject("Server[@Name='LONDON\Server2']/Database[@Name='db1']") Этот способ несколько сложнее, но более универсален. Синтаксис с использованием идентификатора URN поначалу может показаться сложным, но на практике этот способ позволяет выиграть с точки зрения производительности и простоты программного кода в тех случаях, когда вам нужно обращаться в объектам "в глубине" иерархии объектов SQL Server, например, к столбцам таблицы. После того, как вы получили ссылку на объект базы данных, можно использовать свойства и методы этого объекта. Значительная часть свойств объекта SMO.Database предназначена для получения доступа к коллекциям объектов нижних уровней (Tables, Views, Triggers, StoredProcedures и т. п.). Другая часть, к которой относятся свойства DBOLogin и множество свойств, начинающихся на Is..., предназначена для проверки прав текущего пользователя перед выполнением какой-либо операции. Назначение большинства методов также понятно из их названий. Обратим внимание лишь на два метода: q ExecuteNonQuery() — этот метод позволяет выполнить команды в базе данных в тех ситуациях, когда результаты выполнения запроса (в виде набора табличных данных) вас не интересуют, например: oDB.ExecuteNonQuery("exec SP_CHANGEDBOWNER 'user1'") q ExecuteWithResult() — этот метод позволяет выполнить запрос к базе данных и вернуть его результаты в виде стандартного объекта DataSet из библиотеки ADO.NET. Обычно этот объект используется для привязки и отображения в специальных элементах управления, таких как DataGrid. Самый простой способ, чтобы убедиться, что результаты действительно возвращаются, такой: Dim oDataSet As DataSet oDataSet = oDB.ExecuteWithResults("SELECT * FROM table1") MsgBox(oDataSet.GetXml)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||