Программирование >>  Проектирование интерфейса пользователя 

1 ... 76 77 78 [ 79 ] 80 81 82 ... 153


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

имеет следующий вид:

Call ИмяОбъекта.Open( [Источник], [ИмяОбъектаСоединения], А [ТипКурсора], [ТипБлокировки], [Опции] )

Словосочетание ИмяОбъекта означает, что здесь необходимо указать название объявленного и созданного ранее объекта класса а далее, после оператора точк (.), ввести наименование метода - Open. Все аргументы процедуры необязательны - впрочем, это не означает, что их вовсе не нужно задавать; просто соответствующие значения могут быть установлены предварительно, до обращения к Ореп, с помощью свойств класса ADODB. Recordset. Самую полную информацию вы

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

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

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

1 Sub DemoADODB( )

2 Const Provider = Provider=Microsoft.Jet.OLEDB. 4 . 0;

3 Const DataSouroe = Data Source=C:\Data\Hour15.mdb

4 Dim ReoordSet As New ADODB.Recordset

5 Dim Conneotion As New ADODB.Connection

6 On Error GoTo Einaiiy

7 Caii Connection.Open(Provider & DataSouroe) ;8 Caii RecordSet.Open( MUSIC , Conneotion,

:9 adOpenDynamic, AdLoc)<Optimistic )

10: RecordSet.Close

ii: Connection.Close

12:Finally:

13: If (Err.Number о 0) Then 14: MsgBox Err.Description

15: End If

16: Set ReoordSet = Nothing 17: Set Conneotion = Nothing 18:End Sub

II Текст тангов 15.1 и 15.3 совпадают - за исключением тех строк, в кото-1рых содержатся инструкции объявления-создания и использования объекта класса ADODB.Recordset. В строке 4 создается набор данных. Строка 8 демонстрирует прием открытия объекта RecordSet. (В этом примере подразумевается, что объект набора данных ссылается на таблицу Access под названием MUSIC.) Между строками 9 и 10 можно поместить код, предназначенный для обработки записей таблицы. Строка 10 закрывает набор записей, а строка 11 - объект соединения. В строках 16 и 17 выполняются инструкции освобождения памяти, отведенной объектам RecordSet и Connection.

Далее остановимся на строках 8 и 9, содержащих вызов метода открытия набора записей. Первый аргумент процедуры Open - это наименование источника данных, таблицы MUSIC, а второй - имя объекта соединения, Connection. Третий параметр определяет тип курсора. Запись adOpenDynamic означает, что данные могут свободно добавляться, модифицироваться и удаляться, причем все изменения, в это же время вносимые в таблицу



другими пользователями, будут динамически отслеживаться. Четвертый аргумент, Optimistic, определяет тип блокировки записей таблицы. Оптимистический уровень блокировки означает, что запись блокируется вами (другим полюователям будет отказано в доступе, предполагающем возможность внесения изменений), причем только в тот момент, когда вызывается метод Update. Иными словами, гарантируется, что в промежутке между началом внесения изменений и их сохранением содержимое записи не может быть изменено другими пользователями базы данных.

Разновидности наборов данных

Первый аргумент, Источник, передаваемый процедуре Open, определяет вид набора данных. В качестве источника могут использоваться объект класса Command, литерал, представляющий строку выражения на языке SQL, таблица, запрос, хранимая процедура или наименование сохраненного набора данных.

Объекты Command

Command - это объект в составе класса ADO, способный содержать код, возвращающий набор строк данных или выполняющий их модификацию. Объект класса

Command - один из возможных источников данных, указываемых на месте первого

параметра метода Open объекта Recordset. Хранимые процедуры

В качестве первого аргумента метода Open может задаваться имя такого объекта хранимой процедуры, который содержит код на языке SQL. Подробнее об использовании хранимых процедур Access и соответствующих им объектов VBA см. главу 16-й

час. Применение языка SQL . Литеральные выражения SQL

Методу Open может передаваться также символьная строка, в которой находится выражение, написанное на языке SQL. В этом случае вы, автор, получаете самые широкие и гибкие возможности в определении конкретных задач, которые должна выполнить процедура Open. О конструкциях языка SQL и способах их практического использования речь пойдет в главе 16.

Наиболее полная информация о программировании на SQL изложена в таких книгах, как, например, Sams Teach Yourself Microsoft Access in 21 Days и Sams Teach YourselfMicrosoft Access 2002 in 24 Hours. Рекомендуем также посетить виртуальный книжный магазин издательства Sams, который находится по адресу http: www.

com - вам наверняка удастся найти книги, более подробно освещающие вопросы программирования на языке SQL.

Строки 8-9 листинга 15.3 можно переписать с использованием литерального выражения SQL в качестве источника данных следующим образом:

Call RecordSet. Open { SELECT * FROM MUSIC , Connection, adOpen Dynamic, AdLockOptimistic )

Обратите внимание, что теперь таблица MUSIC представлена запросом на языке SQL. Более предпочтительным будет выглядеть вариант предварительного объявления именованной константы, содержащей строку выражения SQL; тогда в качестве аргумента процедуре Open достаточно передать название этой константы.

Таблицы и запросы

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



В двух рассмотренных выше листингах (15.2 и 15.3), а также в коротком примере с литеральным выражением SQL речь шла об открытии одного и того же набора данных (таблицы MUSIC) несколькими способами. Существует еще один - создать и использовать обычный именованный запрос Access. Чтобы воспользоваться запросом Access в качестве источника данных при обращении к процедуре Open, выполните следующие действия.

1. Создайте базу данн1х и постройте в ней таблицу MUSIC, приняв во внимание следующий перечень полей: ID Autonuitiber, ARTIST Text {50), TITLE Text (50), FORMAT Text (50), PUBLISHER Text (50).

2. В окне базы данных Access выберите элемент Запросы (Queries) списка Объекты (Objects).

3. Щелкните на кнопке Создать (New).

4. В диалоговом окне Создание запроса (New Queny) выберите Конструктор (Design View) и щелкните на кнопке ОК.

5. На вкладке Таблицы (Tables) диалогового окна Добавление таблицы (Show Table) дважды щелкните на MUSIC (рис. 15.4), а затем на кнопке Закрыть (Close).

TaS/wuH JBarpocMJ Т*л.*,нл1П[)еси I Добавить

Phorebooit


Рис .4. Дважды щелкните на имени нужной таблицы, чтобы добавить ее в окно определения запроса

6. В окне Запрос на выборку (Select Query) перейдите к списку полей таблицы MUSIC и дважды щелкните на элементе с символом звездочки (*) (рис. 15.5).

......

ill KUSB

ю Щ

Lastjteme

. ....t..=.-a?vv.-i:i-

-

. Пояе;

Сортчэовка;

e jitf жвав;

Уотовйе отбора:..

............... L

или;

Рис .5. Выбор элемента, отмеченного звездочкой, означает, что в набор данных будут включены все столбцы таблицы



1 ... 76 77 78 [ 79 ] 80 81 82 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика