Архитектура Microsoft Windows для разработчиков

Гадание краснодар на сайте http://www.gadalka-nellya.ru.


Занятие 2. Методы доступа к данным

(Продолжительность занятия 90 минут)

Разработчика больше всего интересует метод доступа, который лучше других подойдет конкретному приложению для работы с БД. Выбор зависит от типа используемой базы данных и от функций, которые должно реализовать приложение. На этом занятии Вы познакомитесь со множеством методов доступа к информации, включая DAO, RDO, ADO и SQL-DMO. Кроме того. Вы узнаете, как для каждого метода выполнить подключение к БД, создать результирующий набор данных и возвратить его клиенту.
Изучив материал этого занятия, Вы сможете:

  • сопоставить объекты доступа к данным (Data Access Objects, DAO), объекты удаленных данных (Remote Data Objects, RDO) и объекты данных ActiveX ( ActiveX Data Objects, ADO);
  • перечислить особенности реализации основных интерфейсов доступа к данным;
  • подключиться к источнику данных и получить записи, используя DAO, RDO, ADO;
  • описать назначение SQL-DMO.

Обзор методов доступа к данным

DAO, RDO, ADO и SQL-DMO — это методы доступа, предназначенные для манипулирования данными в реляционных БД (рис. 7.1). Все они выполняют сходные функции, однако каждый оптимизирован для определенной ситуации. Например, DAO лучше подходит для работы с записями в локальной БД Microsoft Access, a RDO — в базе данных SQL Server. Кроме того, у каждого метода свой API или ядро БД.

Прежде чем продолжать чтение, запустите видеоролик Chap05.exe с прилагаемого к книге компакт-диска — он посвящен обзору методов доступа к данным, входящих в арсенал разработчика.

7-4.jpg

Рис. 7.1 Интерфейсы баз данных для разработчиков

Объекты доступа к данным

DAO — это СОМ-интерфейс для ядра Jet (рис. 7.2). Хотя он создан для работы с базами данных Access, FoxPro или dBase, его можно применять и для доступа к ODBC-совместимым базам данных. Последняя версия DAO — ODBCDirect, которую мы и рассмотрим ниже, — модифицирована для оптимизации поддержки удаленных источников данных.

Подключение средствами DAO

Создание надежного приложения для работы с базами данных средствами любого из интерфейсов состоит из нескольких этапов. В частности, для подключения к БД посредством DAO нужно создать ссылку на библиотеку DAO, объявить объектную переменную и затем установить соединение.

 
Примечание Код примера демонстрирует только один из возможных методов подключения к БД посредством DAO. Имейте в виду, что в этом курсе мы не задавались целью рассказывать о разработке законченных решений.

Создание ссылки на библиотеку DAO

Для использования DAO нужно сначала установить ссылку на объектную библиотеку DAO (в настоящее время — Microsoft DAO 3.5 Object Library). Объектная библиотека содержит всю необходимую информацию для разработки кода для DAO. Используемые DAO типы объектов — например, Recordset — не имеют аналогов в

Visual Basic, поэтому, если Вам не удастся создать ссылку на ОАО при попытке объявить необходимые объектные переменные возникнет ошибка

7-5.jpg

Рис. 7.2 Подключение приложения к удаленным БД средствами DAO

Объект Workspace

Объект Workspase создать информацию среды, включая информацию пользователей или применяемое ядроБД. При работе с DAO не нужно создавать объект Workspase - это происходит автоматически. Кроме того, объект Workspase также отвечает за выбор соответствующего ядра для доступа к внешним данным (Microsoft Jet или OBDCDirect).

 
Пример В этом фрагменте кода Visual Basic объявляется объектная переменная типа Workspase :

Dim wrkJet As Workspace

 

'Создание объекта Microsoft Jet Workspace

Set wrkJet = CreateWorkspace(" ", "admin", " ", dbUseJet)


Объект Database

Database представляет открытую базу данных. Этот объект, его методы и свойства предназначены для работы с открытой БД.

 
Пример В этом фрагменте кода Visual Basic объявляется объектная переменная типа Database:

'Объявление объектной переменной типа Database

Dim db As Database


 

Подключение к БД

Создав объектную переменную типа Database (и, если нужно, Workspace), Вы можете подключиться к БД средствами метода OpenDatabase.

 
Пример В этом коде на Visual Basic объектная переменная db, объявленная в предыдущем примере, используется для подключения к БД Northwind:

'Открыть базу данных, используя метод OpenDatabase

Set db = OpenDatabase("C:\DataBases\Northwind.mdb")

Установив соединение с БД, приложение может запрашивать сведения, добавлять новые и удалять существующие записи, а также обновлять данные. Для управления информацией в БД используется объект Recordset.

> Создание ссылки на DAO в Visual Basic

В этом упражнении Вы создадите код Visual Basic для подключения к БД с помощью DAO.

  1. Запустите Visual Basic.
  2. Создайте новый проект типа Standard EXE.
  3. В меню Project щелкните команду References.
  4. Установите ссылку на Microsoft DAO 3.5 Object Library и щелкните кнопку ОК.
  5. В меню Project щелкните команду Components.
  6. Выделите Microsoft Common Dialog Control 5.0 и щелкните кнопку ОК.
  7. Добавьте в форму элемент управления «стандартное диалоговое окно».
  8. В процедуре события Load этой формы наберите следующий код:

    Dim DB As Database

    CommonDialog1.ShowOpen

    Set DB = OpenDatabase(CommonDialog1.filename)

    If Not DB Is Nothing Then

    MsgBox "Successfully connected!

    Else

    MsgBox "Could not connect."

    End If

  9. В меню Run щелкните команду Start.
  10. Когда появиться стандартное диалоговое окно, откройте файл WA\Practice\ Nwind.mdb. После подключения к БД появится окно с информацией о статусе соединения.
  11. Завершите приложение и закройте Visual Basic.

Получение набора записей при помощи DAO

Набор записей (Recordset) — это данные, которые Вы получаете в результате запроса к БД. Например, если Вы подключились к БД и запросили сведения обо всех покупателях, сделавших более 25 заказов, группа записей, указанная в ответе, и называется набором. Объект Recordset управляет наборами записей, созданными при помощи DAO.

Объект Recordset

Объект Recordset описывает группу записей, которые можно просмотреть или изменить. Объект Recordset представляет как записи в базовой таблице, так и результат выполнения запроса. Хотя в наборе много записей, только одна из них может быть текущей в каждый момент.

 
Пример В этом коде на Visual Basic открывается набор записей:

Dim db As Database

Dim rs As Recordset

'Открыть базу данных

Set db = OpenDatabase("Northwind.mdb")

'Открыть набор записей

Set rs = db.OpenRecordset("SELECT * FROM Employees", dbOpenDynaset, dbReadOnly)

'Добавьте здесь код обработки записей

'Когда закончите, закройте объекты

rs.Close

db.Close


DAO и Microsoft Excel

В этом упражнении Вы воспользуетесь DAO для передачи данных из БД Jet в

рабочую книгу Microsoft Excel.

> Создание ссылки на DAO в Microsoft Excel

  1. Запустите Microsoft Excel.
  2. В меню Tools, Macro выберите команду Visual Basic Editor. Будет запущен Office 97 Visual Basic Editor.
  3. В меню Tools Visual Basic Editor щелкните команду References.
  4. Выберите пункт Microsoft DAO 3.5 Object Library и щелкните кнопку ОК.

> Добавление кода для извлечения данных

  1. В меню Insert щелкните команду Module, чтобы добавить в приложение но вый модуль.
  2. В разделе General Declaration добавьте следующие объявления:

    Public db As Database Public rs As Recordset

  3. В меню Insert выберите команду Procedure, чтобы открыть диалоговое окно Add Procedure.
  4. Введите следующую информацию:

Поле

Значение

Name

Load Data

Type

Sub

Scope

Public

  1. Щелкните кнопку ОК.
  2. В процедуру LoadData добавьте следующий код:

    Dim iCounter As Integer Dim iRecordNum As Integer

    Set db = OpenDatabase("C:\WA\Practice\Nwind.mdb")

    Set rs = db.OpenRecordset("Employees")

rs.Movelast

iRecordNum = rs.RecordCount

rs.MoveFirst

Range("A1").Select

For iCounter = 1 To iRecordNum

Cells(iCounter, 1).Value = rs.Fields("FirstName")

Cells(iCounter, 2).Value = rs.Fields("LastName")

rs.MoveNext

Next iCounter

rs.Close

db.Close

> Тестирование приложения

  1. Закройте Visual Basic Editor и сохраните рабочую книгу Excel под именем Ex1.xls.
  2. В меню Tools, Macro выберите команду Macros, чтобы открыть диалоговое окно Macros.
  3. Выберите в списке пункт LoadData и щелкните кнопку Run.

    В результате в рабочей книге должен отобразиться список сотрудников.

  4. Сохраните изменения и закройте рабочую книгу. Не закрывайте Microsoft Excel (он понадобится в следующем упражнении).

DAO и ODBC

Средствами DAO Вы можете подключаться к ODBC-совместимым источникам данных (например, к БД SQL Server) следующими способами: открыть источник данных напрямую, создать ссылку на него или воспользоваться средствами ODBCDirect. Имейте в виду, что RDO и ADO лучше подходят для разработки клиент-серверных приложений, чем DAO.

Открытие источника данных напрямую

Хотя это и не лучший способ, DAO позволяет напрямую открыть ODBC-совмес-тимый источник данных. Для этого нужно создать строку подключения с именем ODBC-драйвера, именем сервера, именем БД, регистрационным идентификатором и паролем. Эта строка используется в качестве параметра при подключении к БД и при создании результирующего набора.

 
Пример Здесь в коде на Visual Basic DAO передается строка подключения к БД pubs SQL Server.

Db.Connect =_

"ODBC;Database=pubs;UID=UserName;PWO=Password;DSN=PubsData"


По некоторым причинам этот метод обладает ограниченной производительностью.

  • Jet не всегда эффективно работает с соединением с ODBC-совместимым источником данных.

    Дело в том, что Jet обрывает соединение после создания результирующего набора, что приводит к дополнительным затратам времени на их восстановление.

  • Jet не кэширует информацию, поступающую из ODBC-совместимого источника данных.

    Для доступа к любой информации об объектах источника данных нужно установить соединение и запросить источник данных.

Подсоединение ODBC-совместимого источника данных

Естественный формат данных для Jet — MDB-формат баз данных Microsoft Access. В частности, Jet может подсоединять источники удаленных данных к MDB-файлу, что позволяет применять стандартный код DAO для доступа к информации и работе с ней. Такие источники в Microsoft Access выглядят как связанные таблицы. Этот способ обычно быстрее открытия напрямую, описанного в предыдущем разделе: каталожная информация об удаленном источнике данных кэшируется в MDB-фай-ле, поэтому ее не приходится извлекать повторно.

Применение ODBCDirect

ODBCDirect — компонент DAO, реализующий прямой доступ к ODBC-совмести-мым источникам данных посредством DAO-доступа к объектам удаленных данных (Remote Data Objects, RDO). Мы обсудим RDO подробнее в следующем разделе. При открытии ODBC-совместимых источников данных через ODBCDirect модель объектов DAO отделяется от ядра Jet. Этот способ удобен, когда приложение одновременно обращается к хранилищам ISAM и ODBC. ODBCDirect позволяет создать рабочее пространство DAO, которое вызывает удаленные источники данных, не применяя ядро Jet. Как следует из названия, ODBCDirect осуществляет доступ к удаленным источникам данных посредством ODBC, не пользуясь средствами ядра Jet.

 
Пример В этом коде на Visual Basic создаются два объекта БД: один — для подключения к БД Microsoft Access средствами Jet, а другой — для подключения к БД SQL Server средствами ODBCDirect, минуя Jet:

Dim wrkJet As Workspace

Dim wrkODBC As Workspace

Dim db As Database

Dim cn As Connection

Dim rs1 As Recordset 'Используется Jet

Dim rs2 As Recordset 'Используется ODBCDirect

'Открыть "рабочие пространства" Microsoft Jet и ODBCDirect

Set wrkJet = CreateWorkspace(" ", "admin", " ", dbUseJet)

Set wrkODBC = CreateWorkspace(" ", "admin", " ", dbUseODBC)

'Подключиться с помощью метода OpenDatabase (Jet)

Set db = wrkJet. OpenDatabase("Northwind.mdb")

'Подключиться с помощью метода OpenConnection (ODBCDirect)

Set cn = wrkODBC.OpenConnection(" ", , , _

"ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")

'Открыть набор записей с помощью Jet Set rs1 = db.OpenRecordset

("SELECT * FROM Employees", dbOpenDynaset, dbReadOnly)

'Открыть набор записей с помощью ODBCDirect

Set rs2 = cn.OpenRecordset

("SELECT * FROM stores", dbOpenDynamic)

'Добавьте здесь код для обработки записей

'После обработки записей закройте все соединения

rs1.Close

rs2.Close

db.Close

cn.Close

wrkJet.Close

wrkODBC.Close


Использование ODBCDirect

В этом упражнении Вы средствами ODBCDirect извлечете данные из БД Northwind. Для имитации ODBC-совместимого источника данных в упражнении используется ODBC-драйвер Microsoft Access.

> Применение ODBCDirect в Microsoft Excel

  1. Переключитесь в окно Microsoft Excel.
  2. Создайте новую рабочую книгу.
  3. Запустите Visual Basic Editor.
  4. Добавьте в рабочую книгу новый модуль.
  5. Добавьте ссылку на библиотеку Microsoft DAO 3.5 Object Library.
  6. Добавьте следующие объявления в раздел General Declarations нового модуля:

    Public wsODBC As Workspace Public cnODBC As Connection Public rsODBC Recordset

  7. Создайте новую открытую процедуру и назовите ее LoadODBCData.
  8. Добавьте в процедуру LoadODBCData следующий код:

    Dim iCounter As Integer

    Set wsODBC = DBEngine.CreateWorkspace("ODBC_ws", "Admin", " ", dbUseODBC)

    Set cnODBC = wsODBC.OpenConnection ("New", dbDriverNoPrompt, False, "ODBC;DSN=nwind")

    Set rsODBC = cnODBC.OpenRecordset("Employees") Range("A1").Select iCounter = 1

    Do Until rsODBC.EOF

    Cells(iCounter, 1).Value = rsODBC.Fields("FirstName")

    Cells(iCounter, 2).Value = rsODBC. Fields("LastName")

    rsODBC.MoveNext

    iCounter = iCounter + 1

    Loop

rsODBC.Close

cnODBC.Close

wsODBC.Close

> Тестирование приложения

  1. Закройте Visual Basic Editor и сохраните рабочую книгу под именем Ex2.xls.
  2. В меню Tools, Macro выберите команду Macros, чтобы открыть диалоговое окно Macro.
  3. Выберите из списка пункт LoadODBCData и щелкните кнопку Run. В результате Вы должны увидеть в рабочей книге список сотрудников.
  4. Сохраните рабочую книгу и закройте Microsoft Excel.

Характеристики решений на базе DАО

Ниже перечислены достоинства и недостатки реализации решений на основе DAO.

Достоинства

  • Знакомый интерфейс: DAO — это самый зрелый объектно-ориентированный интерфейс.
  • Эффективность работы с ISAM: DAO предназначен в первую очередь для работы с ISAM-совместимыми БД и обеспечивает оптимальную производительность.
  • ODBCDirect: хотя это не лучший интерфейс для подключения к ODBC-coвместимым БД, он позволяет DAO воспользоваться преимуществами RDO.

Недостатки

Малая эффективность работы с ODBC: DAO не предназначен для работы с ODBC-совместимыми источниками данных

Модель DAO ориентирована на ISAM: поскольку DAO предназначен в первую очередь для работы с ISAM-совместимыми БД, его модель соответствует именно этим базам данных.

DAO постепенно утрачивает свое значение: новые интерфейсы — например, объекты данных ActiveX — постепенно вытесняют DAO.

Объекты удаленных данных

Объекты удаленных данных (Remote Data Objects, RDO) — это эффективная альтернатива DAO для работы с удаленными источниками данных. RDO представляет собой объектную надстройку над API ODBC (рис. 7.3). Подобно интерфейсу и серверам автоматизации СОМ, RDO можно вызывать из любой 32-разрядной среды разработки.

7-6.jpg

Рис. 7.3 Связь RDO с ODBC

RDO обеспечивает значительно большую производительность и гибкость доступа к удаленным СУБД, чем DAO. Хотя этот метод позволяет получить доступ к любому ODBC-совместимому источнику данных, он оптимизирован для работы с серверами БД, использующими развитые средства запросов (например, Microsoft SQL Server или Oracle).

RDO имеет ряд преимуществ перед DAO и ODBCDirect при подключении к ODBC-совместимым источникам данных.

  • Он позволяет выполнять запросы, возвращающие множественные результирующие наборы, и хранимые процедуры, возвращающие результирующие наборы. Последние подобны набору записей в DAO.
  • Средствами RDO можно ограничить количество возвращаемых записей БД, а также отслеживать все сообщения удаленного источника данных, не затрагивая выполняющийся запрос.
  • RDO поддерживает синхронные и асинхронные операции; в результате приложение не блокируется при выполнении длительного запроса.

RDO и DAO

Хотя RDO и DAO проектировались с различными целями, они имеют много общего. Приведенная ниже таблица иллюстрирует сходство основных объектов DAO и RDO.

RDO

DAO/Jet

RdoEngine

DBEngine

RdoError

Error

RdoEnvironment

Workspace

RdoConnection

Workspace

RdoTable

Table Def

RdoResultset

Recordset

He реализован

Table

Keyset

Dynaset

Static

Snapshot

Dynamic

Нет

Forward-only

Forward-only

Cursorless

Нет

RdoColumn

Field

RdoQuery

QueryDef

RdoParameter

Parameter

He реализован

Relation

He реализован

Group

He реализован

User

 

Соединение с использованием RDO

Подобно DAO, RDO имеет иерархическую структуру объектов для управления соединениями с базами данных. Для подключения к БД через RDO нужно установить ссылку на RDO, а затем подключиться к БД при помощи объекта Connection.

Ссылка на объектную библиотеку RDO

Как и в случае DAO, прежде чем использовать RDO в приложении, нужно установить ссылку на объектную библиотеку (текущая версия — Microsoft Remote Data Object 2.0).

Объект Connection

Объект Connection RDO подобен объекту Database DAO. Он представляет собой соединение с базой данных. Хотя объекту Connection нужен объект Environment, RDO создает его автоматически — точно так же, как DAO по умолчанию создает объект Workspace.

 
Пример В этом коде объявляется новый объект Connection, который затем используется для подключения к БД SQL Server:

Set cn = New rdoConnection

With cn

.Connect = "DSN=pubs;UID=sa;PWD="

. EstablishConnection

EndWith

Создание результирующих наборов средствами RDO

Для создания результирующего набора средствами RDO нужно объявить объекты, определить нужный результирующий набор (табличный или результат запроса) и вызвать соответствующий метод.

Объект Resultset

Объект Resultset представляет собой набор записей, полученных в результате выполнения запроса. Они создаются при помощи метода OpenResultset объектов rdoQuery, rdoTable или rdoConnection.

 
Пример В этом фрагменте на Visual Basic создается объектная переменная типа Resultset. Результирующий набор создается посредством SQL-запроса:

Dim rs As rdoResultset

Dim SQL As String

SQL = "Select au_frame from Authors"

Set rs = cn.OpenResultset(SQL, rdOpenKeyset, rdConcurReadOnly)

Примечание Подробное описание возможностей и особенностей реализации RDO выходит за рамки этой книги. Приведенные здесь примеры следует рассматривать только как иллюстрацию подключения к БД средствами RDO.

Подключение к БД средствами RDO

В этом упражнении Вы воспользуетесь Visual Basic и RDO для подключения к источнику данных и выполнения запроса. Чтобы упростить Вам жизнь, часть кода мы подготовили заранее. > Открытие проекта

  1. Запустите Visual Basic 5.0.
  2. В диалоговом окне New Project откройте вкладку Existing.
  3. Найдите на диске файл WA\Practice\Ch07\Lab7RDO.vbp и щелкните кнопку Open.
  4. В ответ на предложение добавить проект в Visual SourceSafe щелкните кнопку No.
  5. В меню Project выберите команду References.

Обратите внимание на заранее созданную ссылку на библиотеку Microsoft Remote Data Object 2.0.

> Подключение к ODBC-совместимому источнику данных

  1. Откройте окно кода для события cmdConnect_Click.
  2. Добавьте следующий код (он устанавливает соединение средствами RDO):

    Set cn = New rdoConnection

    With cn

    .Connect = "DSN=nwind"

    .EstablishConnection rdDriverNoPrompt, False

    End With

> Заполнение полей ввода данными из таблицы сотрудников

  1. Из списка объектов в окне кода выберите (General).
  2. Из списка процедур в окне кода выберите FillTextBoxes.
  3. Добавьте в эту процедуру код для заполнения полей ввода аналогично примеру, приведенному ниже.

    txtFirstName.Text = rs!firstname

    txtLastName.Text = rs!lastname

> Изучение кода приложения

  1. Рассмотрите код событий cmdFirst, cmdPrevious, cmdNext и cmdLast.
  2. Сохраните проект.
  3. Запустите и проверьте приложение.

Характеристики решений на базе RDO

Вот «плюсы» и «минусы» использования RDO.

Достоинства

  • Эффективность ODBC-доступа: RDO спроектирован для подключения к ODBC-совместимым БД, поэтому он максимально использует возможности и преимущества удаленных источников данных.
  • Обеспечивает совместимость с ISAM

Недостатки

  • Поддерживает только 32-разрядные платформы, например Windows 95 и Windows NT. Если Вам надо подключить приложение к ODBC-совместимой БД на 16-разрядной платформе, придется применять ODBCDirect и DAO.
  • Требует корпоративной редакции семейства продуктов Visual Studio: инструменты RDO доступны только приложениям, созданным с помощью корпоративной редакции средств разработки (например. Visual C++ или Visual Basic 5.0), но не на базе Microsoft Office 97.

Объекты данных ActiveX

Объекты данных ActiveX (ActiveX Data Objects, ADO) — один из самых перспективных методов и, более того, основа универсальной модели доступа к данным.

ADO — это интерфейс к OLE DB. Он разработан для доступа к БД разных типов. В отличие от DAO и RDO, ADO — расширяемая программная модель, которую можно дополнять сервисами независимых поставщиков для доступа к конкретным базам данных.

Сравнение ADO с RDO и DAO

В отличие от RDO, ADO — независимая объектная модель. Это означает, что этот метод позиционируется как интерфейс доступа к данным, заменяющий DAO и RDO. ADO является не конкретной «реализацией» интерфейса доступа к информации, как DAO или RDO, а моделью данных. Расширения версия ADO позволят воспользоваться конкретными функциями различных источников данных (например, средствами ядра Jet).

Перспективы развития ADO

ADO в конечном итоге станет расширением RDO 2.0, предоставляющим более развитый интерфейс и обновленную программную модель. Поскольку ADO — это компонент на основе СОМ, он будет доступен любым приложениям, способным работать с объектами СОМ.

Подключение к БД средствами ADO

В отличие от DAO или RDO, при использовании ADO в коде не обязательно указывать иерархию объектов. Этот метод позволяет не создавать объекты типа Workspace или Database, а напрямую ссылаться на объект типа Recordset. Синтаксис подключения к БД с помощью ADO аналогичен синтаксису RDO.

Установка ссылки на ADO

Как и в случае работы DAO и RDO, приложение должно сначала получить ссылку на объектную библиотеку ADO (текущая версия — Microsoft ActiveX Data Objects 1.5 Library).

Открытие набора записей

При использовании ADO набор записей открывается методом Open. Подробное описание синтаксиса ADO доступно с помощью средства просмотра объектов Visual Basic.

 
Пример В этом коде на Visual Basic средствами ADO устанавливается соединение с базой данных SQL Server:

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset

rs.Open "Select * From Authors", "DSN=pubs;UID=sa;PWD="

Do Until rs.EOF

Print rs!au_lname

rs.MoveNext

Loop

rs.Close


Использование объектов данных ActiveX

В этом упражнении Вы воспользуетесь Visual Basic и ADO для подключения к источнику данных и выполнения запроса. Чтобы упростить Вам жизнь, часть кода мы подготовили заранее.

> Открытие проекта

  1. Запустите Visual Basic 5.0.
  2. В диалоговом окне New Project откройте вкладку Existing.
  3. Найдите на диске файл WA\Practice\Ch07\Lab7RDO.vbp и щелкните кнопку Open.
  4. В ответ на предложение добавить проект в Visual SourceSafe щелкните кнопку No.
  5. В меню Project выберите команду References.

    Обратите внимание на заранее созданную ссылку на библиотеку Microsoft OLE DB ActiveX Data Object 1.0 Library.

> Подключение к ODBC-совместимому источнику данных

  1. В разделе General Declarations формы frmADO создайте следующую объектную переменную уровня формы:

    Dim rs As New ADODB.Recordset

  2. Откройте окно кода для события cmdConnect_Click.
  3. Добавьте следующий код для открытия набора записей:

    rs.Open "SELECT LastName, FirstName FROM Employees",

    "DSN=nwind;", adOpenKeyset

> Заполнение полей ввода данными из таблицы сотрудников

  1. Из списка объектов в окне кода выберите (General).
  2. Из списка процедур в окне кода выберите FillTextBoxes.
  3. Добавьте в эту процедуру код для заполнения полей ввода аналогично примеру, приведенному ниже.

    txtFirstName.Text = rs! firstname

    txtLastName.Text = rs!lastname

> Проверка остального кода приложения

  1. Рассмотрите код событий cmdFirst, cmdPrevious, cmdNext и cmdLast.
  2. Сохраните проект.
  3. Запустите и проверьте приложение.

Характеристики решений на базе ADO

Вот «плюсы» и «минусы» использования ADO.

Достоинства

  • Унифицированный стандарт: модель ADO предоставляет пользователю все возможности, предусмотренные поставщиком услуг БД, и ускоряет выполнение типовых операций.
  • Расширяемость: в будущем ADO станет надмножеством RDO.
  • Интерфейс СОМ: поскольку ADO — это компонент на основе СОМ, он будет доступен любым приложениям, работающим с объектами СОМ (включая Visual Basic). В настоящее время нет лицензионных ограничений на использование ADO.
  • Активные серверные страницы: ADO-сценарии можно разрабатывать на языке Microsoft VBScript.

Недостатки

  • Разработка ADO не закончена.
  • ADO — интерфейс более высокого уровня, чем OLE DB.

SQL-DMO

Объект распределенного управления (Distributed Management Object) Microsoft SQL Server (SQL-DMO) — это объектная модель на основе СОМ, которая позволяет разработчикам снабдить свои приложения средствами администрирования SQL Server. Хотя некоторые административные функции выполняются при помощи хранимых процедур или языков определения данных (Data Definition Languages), SQL-DMO упрощает реализацию этих операций за счет объектной модели.

SQL-DMO позволяет клиентскому приложению манипулировать объектами БД — таблицами, хранимыми процедурами и свойствами сервера — через интерфейс СОМ. SQL-DMO предоставляет приложению следующие возможности:

  • управление таблицами;
  • информацию о правах доступа к серверу;
  • список баз данных на каждом сервере;
  • сценарии всех таблиц.

 
Примечание SQL Server устанавливает ссылку на библиотеку Microsoft SQL OLE Object Library — ActiveX-интерфейс к SQL-DMO. Посредством SQL-DMO можно получать данные из таблиц SQL Server, однако для этого лучше применять RDO.

Резюме

DAO — это СОМ-интерфеис для ядра Jet. Он обеспечивает эффективный доступ к базам данных ISAM. Однако DAO не предназначен для работы с ODBC, и, как следствие, эффективность его взаимодействия с источниками данных этого типа низка. Для подключения к БД с использованием DAO нужно создать ссылку на библиотеку DAO, объявить объектную переменную и установить соединение. Объект Recordset представляет собой записи базовой таблицы или записи, выбранные в результате выполнения запроса. При использовании DAO все манипуляции с информацией выполняются в основном с помощью объекта Recordset.

RDO оптимизирован для работы с источниками данных ODBC, однако сохраняет совместимость с ISAM. Этим методом можно выполнять запросы, возвращающие множественные результирующие наборов, а также ограничивать количество возвращаемых записей и просматривать все сообщения удаленного источника данных, не прерывая выполняющийся запрос. Чтобы подключиться к БД средствами RDO, создайте ссылку на библиотеку RDO и установите соединение с базой данных при помощи объекта Connection. Объект Resultset представляет собой строки, выбранные в результате выполнения запроса к БД.

ADO — это интерфейс к OLE DB. Он разработан для доступа к базам данных разных типов. В отличие от DAO и RDO, ADO — расширяемая программная модель, которую можно дополнять сервисами независимых поставщиков для доступа к конкретным базам данных.

SQL-DMO — объектная модель на основе СОМ, которая позволяет разработчикам снабдить свои приложения средствами администрирования SQL Server. Используя SQL-DMO, клиентское приложение может манипулировать объектами базы данных — таблицами, хранимыми процедурами и свойствами сервера — через интерфейс СОМ.