Методы доступа к данным
(Продолжительность занятия 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.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.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.
- Запустите Visual Basic.
- Создайте новый проект типа Standard EXE.
- В меню Project щелкните команду References.
- Установите ссылку на Microsoft DAO 3.5 Object Library и щелкните кнопку ОК.
- В меню Project щелкните команду Components.
- Выделите Microsoft Common Dialog Control 5.0 и щелкните кнопку ОК.
- Добавьте в форму элемент управления «стандартное диалоговое окно».
- В процедуре события
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
- В меню Run щелкните команду Start.
- Когда появиться стандартное диалоговое окно, откройте файл WA\Practice\ Nwind.mdb. После подключения к БД появится окно с информацией о статусе соединения.
- Завершите приложение и закройте 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
- Запустите Microsoft Excel.
- В меню Tools, Macro выберите команду Visual Basic Editor. Будет запущен Office 97 Visual Basic Editor.
- В меню Tools Visual Basic Editor щелкните команду References.
- Выберите пункт Microsoft DAO 3.5 Object Library и щелкните кнопку ОК.
> Добавление кода для извлечения данных
- В меню Insert щелкните команду Module, чтобы добавить в приложение но вый модуль.
- В разделе General
Declaration добавьте следующие объявления:
Public db As Database Public rs As Recordset
- В меню Insert выберите команду Procedure, чтобы открыть диалоговое окно Add Procedure.
- Введите следующую информацию:
Поле | Значение |
Name | Load Data |
Type | Sub |
Scope | Public |
- Щелкните кнопку ОК.
- В процедуру 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
> Тестирование приложения
- Закройте Visual Basic Editor и сохраните рабочую книгу Excel под именем Ex1.xls.
- В меню Tools, Macro выберите команду Macros, чтобы открыть диалоговое окно Macros.
- Выберите в списке пункт
LoadData и щелкните кнопку Run.
В результате в рабочей книге должен отобразиться список сотрудников.
- Сохраните изменения и закройте рабочую книгу. Не закрывайте 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
- Переключитесь в окно Microsoft Excel.
- Создайте новую рабочую книгу.
- Запустите Visual Basic Editor.
- Добавьте в рабочую книгу новый модуль.
- Добавьте ссылку на библиотеку Microsoft DAO 3.5 Object Library.
- Добавьте следующие объявления
в раздел General Declarations нового модуля:
Public wsODBC As Workspace Public cnODBC As Connection Public rsODBC Recordset
- Создайте новую открытую процедуру и назовите ее LoadODBCData.
- Добавьте в процедуру
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
> Тестирование приложения
- Закройте Visual Basic Editor и сохраните рабочую книгу под именем Ex2.xls.
- В меню Tools, Macro выберите команду Macros, чтобы открыть диалоговое окно Macro.
- Выберите из списка пункт LoadODBCData и щелкните кнопку Run. В результате Вы должны увидеть в рабочей книге список сотрудников.
- Сохраните рабочую книгу и закройте 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.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 для подключения к источнику данных и выполнения запроса. Чтобы упростить Вам жизнь, часть кода мы подготовили заранее. > Открытие проекта
- Запустите Visual Basic 5.0.
- В диалоговом окне New Project откройте вкладку Existing.
- Найдите на диске файл WA\Practice\Ch07\Lab7RDO.vbp и щелкните кнопку Open.
- В ответ на предложение добавить проект в Visual SourceSafe щелкните кнопку No.
- В меню Project выберите команду References.
Обратите внимание на заранее созданную ссылку на библиотеку Microsoft Remote Data Object 2.0.
> Подключение к ODBC-совместимому источнику данных
- Откройте окно кода для события cmdConnect_Click.
- Добавьте следующий код
(он устанавливает соединение средствами RDO):
Set cn = New rdoConnection
With cn
.Connect = "DSN=nwind"
.EstablishConnection rdDriverNoPrompt, False
End With
> Заполнение полей ввода данными из таблицы сотрудников
- Из списка объектов в окне кода выберите (General).
- Из списка процедур в окне кода выберите FillTextBoxes.
- Добавьте в эту процедуру
код для заполнения полей ввода аналогично примеру, приведенному ниже.
txtFirstName.Text = rs!firstname
txtLastName.Text = rs!lastname
> Изучение кода приложения
- Рассмотрите код событий cmdFirst, cmdPrevious, cmdNext и cmdLast.
- Сохраните проект.
- Запустите и проверьте приложение.
Характеристики решений на базе 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 для подключения к источнику данных и выполнения запроса. Чтобы упростить Вам жизнь, часть кода мы подготовили заранее.
> Открытие проекта
- Запустите Visual Basic 5.0.
- В диалоговом окне New Project откройте вкладку Existing.
- Найдите на диске файл WA\Practice\Ch07\Lab7RDO.vbp и щелкните кнопку Open.
- В ответ на предложение добавить проект в Visual SourceSafe щелкните кнопку No.
- В меню Project
выберите команду References.
Обратите внимание на заранее созданную ссылку на библиотеку Microsoft OLE DB ActiveX Data Object 1.0 Library.
> Подключение к ODBC-совместимому источнику данных
- В разделе General
Declarations формы frmADO создайте следующую объектную переменную
уровня формы:
Dim rs As New ADODB.Recordset
- Откройте окно кода для события cmdConnect_Click.
- Добавьте следующий код
для открытия набора записей:
rs.Open "SELECT LastName, FirstName FROM Employees",
"DSN=nwind;", adOpenKeyset
> Заполнение полей ввода данными из таблицы сотрудников
- Из списка объектов в окне кода выберите (General).
- Из списка процедур в окне кода выберите FillTextBoxes.
- Добавьте в эту процедуру
код для заполнения полей ввода аналогично примеру, приведенному ниже.
txtFirstName.Text = rs! firstname
txtLastName.Text = rs!lastname
> Проверка остального кода приложения
- Рассмотрите код событий cmdFirst, cmdPrevious, cmdNext и cmdLast.
- Сохраните проект.
- Запустите и проверьте приложение.
Характеристики решений на базе 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, клиентское приложение может манипулировать объектами базы данных — таблицами, хранимыми процедурами и свойствами сервера — через интерфейс СОМ.