Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7869

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Создание источника данных ODBC

Источник данных ODBC (стандарта средств соединения с базами данных, разрабо-

танного Microsoft) — это объект реестра Windows, обусловливающий способы обраще-

ния к конкретной базе данных из прикладной программы. Источник данных ODBC
предполагает использование определенной динамической библиотеки, которая разрабо-
тана либо поставщиком системы управления базами данных, либо сторонней фирмой, и

обеспечивает возможности взаимодействия с базой данных в рамках стандарта ODBC.

Чтобы создать источник данных ODBC, выполните следующие действия.

1. Щелкните на кнопке Пуск (Start) панели задач Windows.

2. Выберите команду

 управления

 Panel).

3. В окне Панель управления Windows (рис.

 щелкните на пиктограмме Источники

данных ODBC (Data Sources

 чтобы загрузить приложение Администратор

источников данных ODBC (ODBC Administrator).

Файл Правка

 Сервис

 - -

Службы

 I

1КБ

 2КБ Shortcut 25.12.20020:05

 25.12.20020:05

2КБ Shortcut

2КБ Shortcut

2КБ Shortcut

2КБ Shortcut
2КБ Shortcut

Рис. 15.1. Чтобы создать или отредактировать

 данных ODBC, щелкни-

те на пиктограмме Источники данных ODBC окна Панель управления

4. Перейдите на вкладку Пользовательский DSN (User DSN) окна Администратор

источников данных ODBC и щелкните на кнопке Добавить (Add) (рис.

5. В списке диалогового окна Создание нового источника данных (Create New Data

Source) выберите элемент Microsoft Access Driver (*.mdb).

6. Щелкните на кнопке Готово (Finish).

15-й час. ADODB - ваш верный помощник

255


background image

 И;

Драйверы

 Excel

 recess Driver

к дам*

 с

 д

 Так выглядит окно программы

Администратор источников данных ODBC

7. В поле Имя источника данных диалогового окна Установка драйвера ODBC для

Microsoft Access введите наименование создаваемого источника данных (примеру

листинга 15.2 соответствует имя

8. Щелкните на кнопке Выбрать (Select) группы опций База данных (Database).
9. В диалоговом окне Выбор базы данных (рис. 15.3) (Select Database) перейдите к нуж-

ному файлу базы данных (в тексте листинга 15.1 указано С:

 — эту

строку легко заметить).

 •'

1

| Базы данных Access

 •

 1

 '

Си

 1-У

  ' - '

 ••

 Выберите нужный файл базы данных Access

10.

 Щелкните на кнопке ОК диалогового окна Установка драйвера ODBC для Microsoft

Access.

11.

 Щелкните на кнопках Применить (Apply) и ОК окна Администратор источников

данных ODBC, чтобы сохранить созданный источник данных.

Необходимо отметить, что предложенная выше последовательность действий по

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

базы данных. В одном случае процедура более сложна и продолжительна, в другом -
проще и короче. Как правило, каждый ODBC-драйвер укомплектован системой опе-
ративной справки, поясняющей особенности создания источников данных на его ос-
нове, — читайте и экспериментируйте.

256

Часть V. Программирование и базы данных Access


background image

Провайдер: что это такое?

На первый взгляд, набор

 источников данных

 может показаться похожим на мусорную

свалку. Не судите слишком строго. Если Microsoft проявит последовательность и на-
стойчивость, вскоре все мы будем обращаться исключительно к услугам

 провайдеров.

При необходимости расширить толкование определенного термина часто создают

еще один, который, охватывая прежний, вносит новый смысл. Термин

 источник дан-

ных,

 используемый в контексте стандарта ODBC, означает ссылку на базу данных.

Термином

 провайдер,

 введенным в обиход с появлением OLE DB, обозначаются как

традиционные базы данных — скажем, формата MS SQL Server, Access, Oracle, DBF
и т.д., — так и хранилища информации новых видов.

Стандарт OLE DB призван обеспечить возможность работы с источниками данных

самых разных типов — от "старинных" баз данных, которые обслуживаются програм-
мами, написанными на языке COBOL, до современных серверов Oracle и сайтов Web.

Задание имени и пароля пользователя

ЕСЛИ база данных защищена паролем, в строке соединения могут быть заданы имя

пользователя и его пароль. Напомним, что в строку соединения, наряду с описанием

провайдера, допустимо вводить и другие параметры.

Имя пользователя и пароль указываются в формате

 Строка 2

листинга 15.2 содержит пример задания пустых имени и пароля пользователя. Эти па-

раметры могут задаваться либо непосредственно в строке соединения, либо позже, в

качестве второго и третьего аргументов процедуры ADODB. Connection. Open.

Если имя и/или пароль пользователя задаются и в строке соединения, и

при вызове метода Open, значения аргументов процедуры Open имеют
более высокий приоритет.

Выбор режима соединения

Метод

 способен принимать до четырех параметров. Первый

из них (строка соединения) — обязателен, остальные — нет. Второй и третий параметры —

соответственно, имя и пароль пользователя; в качестве четвертого может быть задано одно

из значений встроенного перечислимого типа, обозначающее режим соединения.

Доступны два режима соединения —

 и

Первый, предлагаемый по умолчанию, обеспечивает соединение с базой данных в
синхронном режиме. Под

 синхронным

 понимается такой вызов процедуры или функ-

ции (в данном случае — метода ADO), при котором работа программы приостанавли-

вается до тех пор, пока выполнение метода не будет завершено.

Новый термин

Поток,

 или

 нить

 (thread) — это подпрограмма, выполняемая внутри при-

ложения. В однопоточном приложении в определенный момент времени

работает единственный внутренний процесс — в отличие от многопоточ-

ного, в котором одновременно выполняется несколько

Говоря о потоке, представим для простоты, что он состоит из единст-

венной функции. В однопоточном, синхронном, приложении обра-

щение к такой функции означает, что в момент ее работы остальной
код программы не выполняется. Но в многопоточном приложении
после запуска функции-нити программа продолжает свое выполнение,

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

15-й час. ADODB - ваш верный помощник

257


background image

Другой режим соединения,

 асинхронный,

 обозначается аргументом adAsyncCon-

nect. В этом случае обращение к функциям ADO выполняется в пределах отдельного
потока, и программа получает возможность продолжения работы еще до завершения
выполнения кода созданного потока.

Если блок кода вызывается в синхронном режиме, возврат из него означает, что

выполнение блока завершилось. Но в асинхронном режиме основной код и вызван-

ный блок "живут" и выполняются независимо. Работа в асинхронном режиме требует
большего внимания, поскольку необходимо контролировать состояние процессов од-
новременно в разных частях кода.

 наборами данных

Объект класса Connection позволяет программе обращаться к провайдеру. Но ос-

новная работа происходит на уровне наборов данных. Если Connection — это объект,
предоставляющий программе общий "канал" связи с данными, то объект класса Re-

cordset позволяет обращаться к конкретным подмножествам источника данных. Отме-

тим, что в большинстве случаев (за исключением некоторых "глобальных" операций,
связанных, например, с резервным копированием базы данных в целом) программа в
определенный момент времени имеет дело только с некоторой частью данных.

Объект Recordset дает возможность одновременного обращения к одной строке

данных. Традиционный термин

 запись

 служит для обозначения одной строки данных

из одной таблицы. Объекты Recordset, применяемые для работы с системами реля-
ционных баз данных, к примеру Access 2002, способны содержать информацию более
чем из одной таблицы. В этом смысле уместно употреблять новый термин —

 строка.

Поэтому далее будем говорить, что объект Recordset позволяет манипулировать

строками данных.

Прежде чем научиться пользоваться объектом Recordset, вам необходимо узнать, как

 объявлять, открывать и закрывать. Этим вопросам посвящены следующие разделы.

Открытие и закрытие наборов данных

Объект Recordset — составная часть класса ADODB. Поэтому для обращения к не-

му необходимо ссылаться на класс ADODB (к слову, объект с таким же названием име-
ется и в составе класса

I

 — это, в свою очередь, класс. Для создания объектов

класса необходимо использовать директиву New, а при выполнении опе-
раций присваивания — служебное слово Set. Синтаксис выражения объ-

 явления и создания объекта

 таков:

Dim

 As New

В качестве имени объекта укажите любую последовательность допусти-
мых символов. Некоторые программисты обозначают объекты наборов

данных сокращением RS. Вам могут встретиться также образцы кода, в

которых идентификаторы снабжены префиксами ado, указывающим нам
то, что речь идет об объектах класса ADO, а не

 Автор книги предпо-

читает обычное словосочетание RecordSet или некоторые его вариации.

Пожалуйста, поступайте так, как считаете нужным, но будьте последова-

тельны в своих решениях и действиях — тогда код станет более четким и
простым для восприятия.

258 Часть V. Программирование и базы данных Access


background image

Чтобы получить возможность использования объекта Recordset, одной
инструкции объявления и создания недостаточно — объект необходимо
открыть. Синтаксис обращения к методу Open объекта
имеет следующий вид:

Call

 [Опции] )

Словосочетание ИмяОбъекта означает, что здесь необходимо указать название объ-

явленного и созданного ранее объекта класса

 а далее, после опера-

тора точки

 ввести наименование метода — Open. Все аргументы процедуры не-

обязательны — впрочем, это не означает, что их вовсе не нужно задавать; просто со-
ответствующие значения могут быть установлены предварительно, до обращения к
Open, с помощью свойств класса

 Самую полную информацию вы

сможете найти в оперативной справочной системе.

Завершив работу с набором данных, вы должны закрыть его. Чтобы закрыть набор

данных, следует использовать метод (как вы догадались?) Close, который действи-
тельно прост — он не требует аргументов. Листинг 15.3 содержит расширенный вари-
ант процедуры листинга 15.1, включающий обращения к объекту

Листинг 15.3. Пример использования объекта

1 Sub

 )

2 Const Provider =
3 Const DataSource = "Data
4 Dim RecordSet As New

5 Dim Connection As New
6 On Error GoTo Finally
7 Call

 & DataSource)

8 Call

 Connection,

9

 )

10:
11:

13: If

 <> 0) Then

15: End If

 Set RecordSet = Nothing
 Set Connection = Nothing

 Sub

I Тексты

 15.1 и 15.3 совпадают — за исключением тех строк, в кото-

I

 содержатся инструкции объявления-создания и использования объекта

класса

 В строке 4 создается набор данных. Строка 8 де-

монстрирует прием открытия объекта RecordSet. (В этом примере подразу-
мевается, что объект набора данных ссылается на таблицу Access под назва-
нием MUSIC.) Между строками 9 и 10 можно поместить код, предназначен-
ный для обработки записей таблицы. Строка 10 закрывает набор записей, а
строка

 — объект соединения. В строках 16 и 17 выполняются инструкции

освобождения памяти, отведенной объектам RecordSet и Connection.

Далее остановимся на строках 8 и 9, содержащих вызов метода открытия набора запи-

сей. Первый аргумент процедуры Open — это наименование источника данных, таблицы

MUSIC, а второй — имя объекта соединения, Connection. Третий параметр определяет тип

курсора. Запись adOpenDynamic означает, что данные могут свободно добавляться, моди-
фицироваться и удаляться, причем все изменения, в это же время вносимые в таблицу

15-й час. ADODB — ваш верный помощник

259