|
Программирование >> Разработка пользовательского интерфейса
Operator Permission Publication QueryResults RegisteredServer Registry Remote-Login Remote-Server Rule Server-Group SQLServer Stored-Procedure Subscriber-Info Subscription System-Datatype Table Task TransactionLog объектов в виде строк символов. Описывает условия работы оператора, в том числе его почтовый адрес, необходимость получения предупреждений, режим работы и т. д. Содержит информацию о пользовательских объектах БД или привилегиях команд. Содержит информацию о публикации (наборе статей), используемой для синхронизации данных. Метод AddFullSubscriber позволяет указать сервер, на котором данные синхронизируются по всем статьям в наборе. Содержит данные, полученные при выполнении запроса. Данные могут быть получены путем выполнения метода ExecuteWithResults объектов SQLServer, Database и RemoteServer. Данные размещаются в памяти и не могут редактироваться. Содержит имя и данные о регистрации SQL серверов, входящих в объект ServerGroup для использования в SQL Enterprise Manager. Этот объект отображается в Server Manager и запоминается в Регистре. Содержит всю информацию, размещенную в Регистре Windows о SQL Server. Используется при соединении внешнего сервера с локальным SQL Server и содержит необходимую для этого соединения информацию. Внешний SQL Server, который становится известным для локального сервера. Содержит информацию о допустимых данных для колонок или типов данных. Группа серверов, имеющая уникальное имя. Объект для связи с используемым сервером. Каждый объект SQLServer может инициализировать одно соединение с выбранным сервером, используя метод Connect. Поименованный набор команд Transact-SQL, который запоминается в БД. Помимо команд в свойстве Text может храниться имя и путь к библиотеке DLL, реализующей расширенный вариант хранимых процедур. Содержит всю необходимую информацию для обновления данных на внешнем сервере, включая дату начала и конца подписки (свойства ActiveStartDate и ActiveEndDate), интервалы ежедневного, еженедельного и ежемесячного обновления и т. д. Содержит информацию, необходимую для синхронизации данных. Содержит информацию о системных типах данных SQL Server. Представляет набор строк в БД (таблицу). Позволяет изменять свойства таблицы, добавлять новые колонки, проверять ограничения целостности и т. д. Содержит информацию о плановых заданиях. Содержит информацию о процедуре регистрации транзакций. Позволяет зарезервировать пространство для журнала регистрации и указать необходимость его ведения на отдельном устройстве. Transfer Содержит информацию для пересылки данных и объектов из БД источника (объект Database) в другую БД, расположенную на внешнем сервере. Trigger Триггер для указанной таблицы. Позволяет получить информацию о хранящихся триггерах или создать новый с помощью метода Script. Тип триггера определяется свойством Type. User Содержит информацию о пользователе БД. Каждый пользователь ассоциируется с одной регистрацией пользователя для работы с БД. User-Defined- Определяет пользовательский тип данных. Datatype View Представление, хранящееся в БД. В свойстве Text хранится команда SELECT Transact-SQL для выполнения запроса. Данные в представлении не могут редактироваться. На вершине иерархии объектов DMO находится объект Application, который обеспечивает нас методами и свойствами для управления средой приложения. Важной особенностью использования объектов SQL-DMO является наличие наряду с самими объектами, их коллекций. За счет этого работа с объектами в Visual Basic существенно упрощается. Коллекция включает группу объектов одного типа. Имя коллекции образуется как множественное число от имени объекта. К коллекции можно обратиться из объекта, являющегося родительским в иерархии. Если объект не имеет коллекции, то используется коллекция Properties, которая имеет по одному объекту Property для каждого свойства. С ее помощью можно легко установить имена и значения всех свойств объекта, не зная их заранее. Например: For Each oProperty in oSQLServer.Properties Debug.Print oProperty.Name & = oProperty.Value Next В Visual FoxPro возможность использования таких языковых конструкций появится только в следующей версии. При использовании версии 3.0 работы немного прибавится. Например, для получения всех имен БД, имеющихся на сервере, в Visual Basic достаточно такого фрагмента кода: For Each oDatabase in oSQLServer.Databases Debug.Print oDatabase.Name Next В Visual FoxPro код будет чуть длиннее: nDBNum = oSQLServer.Databases.Count FOR nItem = 1 TO nDBNum ? oSQLServer.oDatabases(nItem).Name NEXT Для добавления нового объекта в коллекцию используется метод Add. Для удаления объекта из коллекции - метод Remove. По сравнению с другими рассмотренными ранее объектными моделями, модель объектов SQL-DMO имеет особый тип коллекции, - список (list), доступный только для чтения. Возможности получения списков весьма широки и охватывают почти все объекты DMO, но необходимо учитывать, что в списке вы получите данные, фиксирующие текущее состояние системы и никак не изменяющиеся при дальнейших действиях. Для того чтобы начать работу с SQL сервером посредством DMO, если вы используете Access или Visual Basic, необходимо создать объект SQLServer: Global MyServer As New SQLOLE.SQLServer Если вы используете Visual FoxPro, то необходимо воспользоваться функцией CREATEOBJECT(): oMyServer = CREATEOBJECT( SQLOLE.SQLServer ) В данный момент этот объект представляет собой абстрактную ссылку. Для придания ему конкретности необходимо подсоединиться к существующему серверу, естественно, если вам как пользователю даны права или вы знаете пароль администратора. Вы можете сделать это, использовав метод Connect объекта SQLServer, например, следующим образом: oMyServer.Connect(Servername:= Autoserver , Login= Me ,Password= You ) Можно пойти более сложным путем, но при этом вы будете знать причину возникновения возможной ошибки. Используйте следующую или подобную ей функцию: Function SQLLogin(strServerName As String, strUID As String, strPWD As String) As Boolean Подключение к указанному SQL серверу, используя предложенный идентификатор пользователя и пароль. Устанавливает глобальный объект типа SQLServer Возвращает истину при удачном завершении, в противном случае - ложь. On Error GoTo SQLLoginErr Const erSQLAlreadyLoggedIn = -2147211004 SQLLogin = True DoCmd.Hourglass True mySQLServer.Connect strServerName, strUID, strPWD SQLLoginExit: DoCmd.Hourglass False Exit Function SQLLoginErr: Select Case Err.Number Case erSQLAlreadyLoggedIn SQLLogin = True Resume Next Case Else MsgBox Error & Err.Number & : & Err.Description, vbCritical, SQLLogin() End Select SQLLogin = False Resume SQLLoginExit End Function В простейших случаях можно безболезненно пользоваться первой конструкцией. Необходимо помнить, что после завершения работы программы с использованием SQL-DMO вам обязательно надо отсоединиться от сервера. Для этого используйте метод Disconnect объекта SQLServer: oMySqlServer. Disconnect В промежутках между присоединением к серверу и отсоединением от него вам доступны практически любые операции с сервером и с его данными, но в зависимости от предоставленных вам прав доступа. Вы можете, например, получить информацию о доступных устройствах баз данных, о самих базах данных, выполнять запросы и работать с результатами запросов. Если нужно создать новую базу данных, которая будет располагаться на конкретном устройстве, то можно это сделать примерно так, как это сделано в следующем примере: Function SQLMakeNewDatabase(strName As String, strDeviceName As String, lngSize As Long) Создаем новую БД на текущем SQL Server On Error GoTo SQLMakeNewDatabaseErr SQLMakeNewDatabase = True Dim objNewDatabase As New SQLOLE. Database If Not gobjSQLServer Is Nothing Then DoCmd.Hourglass True With objNewDatabase .Name = strName End With БД будет располагаться на устройстве по умолчанию gobjSQLServer.Databases.Add objNewDatabase
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |