
Если приемы, о которых было рассказано, войдут в ваш арсенал, то профессио-
нальная деятельность станет гораздо более продуктивной, а результаты приобретут
новое качество. Минутку, не надо бросаться в погоню за качеством прямо сейчас —
уделите время изучению разделов "Вопросы и ответы" и "Задания", которые с нетер-
пением ожидают вашего внимания.
Вопросы и ответы
Вопрос. Существует ли единый рецепт "правильного" программирования?
Ответ.
К сожалению, нет. Вот почему программирование в чем-то сродни искусст-
ву. Впрочем, есть достойные образцы, стратегии и приемы, которым можно и нужно
следовать. Первое и главное — программа должна работать верно.
Вопрос. Необходимо ли пытаться реализовать все ваши советы сразу, на первом же
этапе работы над программой?
Ответ.
Нет. Если настойчиво их применять, они станут привычными и естествен-
ными. Кроме того, я настоятельно рекомендую по возможности просматривать код
программы несколько раз.
Вопрос. Существуют ли другие приемы или стандарты, которые стоит изучить?
Ответ.
Лучшие стратегии работы формируются на практике — творите, выдумы-
вайте, пробуйте!
Задания
Ниже приведены тестовые задания и упражнения, которые помогут вам самостоя-
тельно проверить уровень освоения материала, изложенного в этой главе. Ответы на
вопросы вы найдете в приложении.
Тесты
1. Назовите удобный способ именования процедур и функций.
2. В чем заключаются положительные стороны идеи повторного применения про-
граммного кода?
3. Смысл префиксной, или венгерской, нотации состоит в разработке
сокра-
щенных названий типов, используемых для именования переменных. Верно ли это?
4. Термин
процедура
используется для обозначения и подпрограмм, и функций. Верно
ли это?
5. Назовите важное эмпирическое правило, которое обусловливает приемлемый раз-
мер кода процедуры или функции.
1. Задайте имя функции, предназначенной для вычисления полной и частичной сумм.
2. Предложите имена для пары функций, одна из которых просто закрывает файл, а
другая выполняет проверку корректности выполнения этой операции.
3. Задайте названия переменной, предназначенной для хранения номера открытого
файла, хранения номера ошибки открытия файла, а также для процедуры, вычис-
ляющей сумму процента при известных сумме капитала и процентной ставке.
250 Часть V. Программирование и базы данных Access

час
ADODB — ваш
верный помощник
Технологии управления базами данных
стремительно. История их раз-
вития весьма поучительна — ее можно было бы обсудить за чашечкой кофе, — но доста-
точно сказать одно: базы данных достигли того уровня возможностей, на котором задачи
программирования решаются намного проще, нежели еще несколько лет назад.
Одним из серьезных промежуточных достижений на долгом пути совершенствова-
ния технологий стало создание (усилиями специалистов Microsoft) стандарта доступа
к базам данных, получившего название
Open DataBase Connectivity,
ODBC. ODBC оп-
ределяет единые правила работы с базами данных самых различных типов. Участь
программистов еще более облегчилась с появлением нового протокола взаимодейст-
вия с базами данных —
ADO.
Это также несомненная заслуга Microsoft. Поскольку
ADO — самый свежий и мощный стандарт, большую часть занятия мы посвятим
именно ему.
Доступ к библиотеке ADODB в среде Microsoft Visual Basic осуществляется из диа-
логового окна
Класс ADODB содержит объекты классов для пред-
ставления таблиц, запросов, записей, столбцов, полей и многих других объектов дан-
ных, обеспечивая самые разные возможности их обработки. Теперь вам удастся, от-
бросив в сторону все лишнее, сосредоточить внимание на особенностях и способах
решения самой задачи. Многие трудоемкие и рутинные обязанности ADODB принима-
ет на себя.
Основные темы занятия.
• Соединение с базой данных и использование наборов данных.
• Операции добавления, обновления и удаления записей.
• Сохранение информации из баз данных в коллекциях.
• Атрибуты объектов ADODB, предназначенные для управления базами данных.
• Использование информационных ресурсов и поиск готовых решений.
• Использование методов
em и Remove
для управления элементами
коллекций.

Соединение с базой данных
Задача программирования для Access в немалой степени упрощается за счет того,
что программный код хранится в самой базе данных. Первым делом вы должны на-
учиться создавать соединение с базой данных.
В диалоговом окне
редактора Visual Basic содержится
список всех доступных библиотек ActiveX. Это библиотеки скомпили-
рованных программ, которые можно вызывать из собственного VBA-
кода. ADODB доступны в проекте по ссылке
Название
текущей версии ADO — Microsoft ActiveX Data Objects 2.7. Library. ADO -
это название протокола, a ADODB - название объекта в библиотеке.
В составе ADODB имеется класс Connection. Среда Microsoft Visual Basic по умол-
чанию настроена на использование протокола ADO, поэтому вы сможете обращаться
к подклассам ADODB без дополнительных усилий. Чтобы обеспечить соединение с ба-
зой данных, выполните следующие действия.
1. Определите процедуру.
2. Объявите в ней переменную-объект класса ADODB. Connection.
3. Задайте информацию о провайдере OLE DB (соответствующая структура подробно
рассмотрена ниже).
4. Откройте соединение.
5. По завершении работы освободите память, выделенную объекту Connection.
Новый термин
Данные о
провайдере
(provider)
OLE DB
(очередной протокол, разрабо-
танный Microsoft и призванный заменить ODBC) — это новая версия
источника данных.
Поскольку OLE DB, помимо традиционных средств,
предлагает дополнительные, более мощные, словосочетание
источник
данных
было решено заменить термином
провайдер.
Говоря привычным
языком, провайдер — это источник данных.
Способы выполнения всех названных операций иллюстрируются в тексте лис-
тинга 15.1.
Листинг
Пример использования объекта
1 Sub
)
2 Const Provider =
3 Const DataSource
"Data
4 Dim Connection As New
5 On Error GoTo Finally
6 Call
& DataSource)
7
8 Finally:
9 If
<> 0) Then
10: MsgBox
11: End If
12 : Set Connection = Nothing
Sub
Оформляйте длинные символьные литералы в виде именованных
констант, вынесенных за пределы кода, в котором они используются -
текст программы станет гораздо более удобным для чтения.
252
Часть V. Программирование и базы данных Access

Анализ
В строках 2 и 3 определяются именованные константы, содержащие описа-
ние параметров соединения — сведения о провайдере и путь к файлу базы
данных. Строка с информацией о провайдере выглядит следующим образом:
. О
Далее указывается наименование базы данных и путь к ней. В нашем конкретном
случае выражение таково:
Data
Применение метода Open класса
— это, вероятно,
самая непростая часть операции создания соединения с базой данных,
поскольку строка, описывающая сведения о провайдере, выглядит для
непосвященных как нечто неподвластное сознанию. Однако вам не стоит
опасаться. Смело копируйте и используйте ее в своих приложениях.
(Разумеется, вы должны заменить путь к базе данных, указанный в примере, соб-
ственным, реальным.) Обратите внимание, что строка соединения — это единое це-
лое,
в себя блоки информации о провайдере и пути к базе данных, раз-
деленные символом точки с запятой.
Новый термин
Свойства и методы класса принято называть обобщенным термином
ин-
терфейс.
Исчерпывающие сведения по этим вопросам вы найдете в главе
"21-й час. Основы программирования классов".
Строка 4 листинга
иллюстрирует прием единовременного объявления и созда-
ния объекта класса ADODB. Connection. Помните о том, что Connection — это не-
часть интерфейса класса ADODB, поэтому для ссылки на нее необходимо
указывать наименование "внешнего" класса, ADODB, отделяя его оператором точки
Поскольку ADODB. Connection — это, в свою очередь, также класс, в конструкции
создания его объекта следует использовать служебное слово New. Строка 5 определяет
выражение обработчика ошибок (подробнее см. главу "18-й час. Обработка ошибок во
время выполнения программы"), который при возникновении ошибки обеспечивает
автоматический переход к строке кода, содержащей указанную метку.
В строке 6 осуществляется обращение к процедуре-методу открытия базы данных.
Ниже вы можете вставить строки, выполняющие определенные операции с данными.
По завершении работы необходимо закрыть соединение таким образом, как это сде-
лано в строке 7.
В строках
9—
выполняется анализ допущенной ошибки и отображается содер-
жимое одного из свойств объекта Err. (Подробнее о классе Err см. главу 18.) Инст-
рукция строки 12 освобождает память, выделенную объекту Connection.
Аргументы процедуры открытия базы данных
Метод Open класса
требует задания аргумента, содержащего
строку соединения. В строке соединения объектом ADO распознаются
па-
раметры, представленные в формате
и разделенные символом
ТОЧКИ С запятой: Provider, File Name, Remote Provider И Remote Server (их
описание приведено в табл. 15.1). Строка соединения может содержать и другие аргу-
менты (например, имя и пароль пользователя), но они не обрабатываются ADO и
должны следовать правилам, которые регламентируются конкретным провайдером.
час. ADODB - ваш верный помощник 253

Таблица 15.1. Параметры соединения, поддерживаемые объектом ADO
Наименование
Описание
Provider
File Name
Remote Provider
Remote Server
Наименование провайдера
Файл провайдера, содержащий данные
Наименование провайдера, используемого в клиентских приложениях
Наименование приложения удаленного сервера, используемого клиентскими
программами
Параметры, перечисленные в табл.
обрабатываются ADO, а все остальные
(скажем, имя и пароль пользователя) драйвером OLE DB. Листинг 15.2 демонстрирует
код, аналогичный предыдущему. Соединение обеспечивается не с помощью провай-
дера OLE DB, а средствами протокола ODBC.
Листинг
Открытие базы данных с использованием ODBC
Sub
)
Const ConnectionString =
Dim RecordSet As New
Dim Connection As New
On Error GoTo Finally
Call
Finally:
If
<>
0) Then
End If
Set RecordSet = Nothing
Set Connection = Nothing
9
10:
11:
14:
15:
18:
19:
Sub
21:
I Единственное принципиальное различие между двумя рассмотренными
состоит в том, что в последней для доступа к данным при-
меняются средства ODBC. Стандарт ODBC, верой и правдой служивший
на протяжении многих лет и активно используемый поныне, требует по-
строения так называемых источников данных (об этом рассказано в сле-
дующем разделе).
Но с ростом популярности Web и соответствующих средств программирования возни-
кают задачи обработки данных, которые поступают из источников новых типов. Спрос
рождает предложение, и поэтому Microsoft разработала расширенный стандарт средств со-
единения с базами данных, назвав его
OLE DB.
Наиболее полная информация об OLE DB
находится по Internet-адресу
254
Часть V. Программирование и базы данных Access