|
Программирование >> Проектирование интерфейса пользователя
Закрытие Завершив работу с объектом соединения, не забывайте закрыть его. Листинг 7.4 содержит короткий пример применения команд объявления, открытия и закрытия объекта Connection. Листинг 7.4. Пример использования объекта ADODB.Connection Sub OpenConnection( ) Const Provider = Provider=Microsoft.Jet.OLEDB.4.0; Const DataSourtli = Data Source=E:\Books\Teach Yourself Microsoft Access 2002 4 Programming in 24 HoursXChapter 7\661707.mdb Dim Connection As New ADODB.Connection Connection.Open Provider + DataSource Connection.Close 10: End Sub Знак & и символ подчеркивания в строках 4 и 5 листинга 7.4 используются для конкатенации строки, расположенной в нескольких физических строках кода. В строках 2-5 задается информации о соединении и источнике данных. В I строке 7 содержится объявление объекта. В строках 8 и 9 выполняется открытие и закрытие соединения. Чтобы процедура выполняла что-то действительно результативное, вставьте необходимый код между строками 8 и 9. Recordset После объявления объекта Connection и успешного открытия соединения будет естественным обратиться к объекту Recordset, который задает некий набор данных и позволяет приступить к решению конкретной задачи. Объект класса Recordset способен содержать данные из таблицы, запроса, курсора или хранимой процедуры. Открытый объект Recordset может единовременно ссылаться на одну запись (строку) набора данных. Объекты класса Recordset - одни из самых популярных и часто используемых средств управления данными. Поверьте, целью разнесения по различным классам функций соединения с базой данных и управления ею является отнюдь не стремление ввести вас, программиста, в заблуждение и смятение. Основной довод, которому следовали разработчики Microsoft, - это разумное распределение ответственности. Задача управления базой данных в общей постановке весьма трудна. Наличие отдельных классов (таких как Connection или Recordset), решающих частные задачи, значительно упрощает технологию программирования. Но если собрать все данные и методы их обработки в единое целое, такой объект наверняка выйдет за пределы восприятия и потребует чрезмерных системных ресурсов. Возможность разбиения целого на части - одно из фундаментальных преимуществ объектно-ориентированного стиля программирования. Наборы данных (объекты Recordset) следует открывать, а затем закрывать. Они предоставляют возможности добавления, циклического просмотра и редактирования записей. Вложенные объекты класса Fields еще более упрощают задачи обработки данных (см. листинги 7.1, 7.2 и 7.3). Открытие Прежде чем воспользоваться средствами объекта Recordset для доступа к данным, его надлежит открыть. Чтобы открыть объект, следует объявить переменную ИмяНабораДан-ных типа ADODB. Recordset, а затем записать конструкцию вида ИмяНабораДанных.Ореп ИмяОбъектаДанных, ОбъектСоединения, ТипКурсора, ТипБлокировки, ДополнительныеОпции ИмяНабораДанных- это ранее объявленная переменная типа ADODB.Recordset (см. строку 5 листинга 7.2). В качестве ИмяОбъектаДанных следует задать имя таблицы (см. строку 6 листинга 7.2) либо символьной переменной, содержащей код SQL. Вместо ОбъектСоединения можно подставить имя объекта CurrentProject .Connection, если достаточно использовать ту же базу данных, которая содержит текст текущего модуля. Можно также использовать имя другого правильно определенного объекта типа Connection (обратитесь к разделу Connection , приведенному выше). Параметры ТипКурсора и ТипБлокировки принимают значения неречислимых типов и описание которых вы сможете найти в фай- лах оперативной справки Access. В строке 3 листинга 7.2 в качестве параметров Тип-Курсора и ТипБлокировки указаны значения adOpenKeyset и adLockOptimistic соответственно. Закрытие После завершения работы с набором данных (объектом класса ADODB.Recordset) его необходимо обязательно закрыть. Возьмите за правило выполнять подобную операцию всегда. Строка 18 листинга 7.2 служит примером инструкции закрытия набора данных. Редактирование записи Команды добавления записи и редактирования ее содержимого весьма просты. Строка 8 листинга 7.2 демонстрирует действия по добавлению записи. При необходимости сохранения внесенных изменений, связанных с добавлением или редактированием записи, используйте команду Update. Предположим, что объект набора данных носит название RS. Тогда инструкция добавления заниси будет выглядеть как RS.AddNew, редактирования - RS.Edit, а сохранения внесенных изменений - RS . Update. Примеры добавления, редактирования и сохранения записей приведены в строках листинга 7.2. Условия достижения начала и конца набора данных Объект класса содержит два метода определения факта дости- жения начальной и конечной записей набора данных - соответственно, ВОТ (от Beginning Of File - начало файла) и EOT (от End Of File - конец файла). Новый термин Метод - это термин, который указывает на процедуру или функцию, содержащуюся в составе класса и объектов на его основе. В наборе методов объекта заключены его функциональные возможности. Предположим, что объект набора данных носит название RS. Тогда инструкция проверки условия достижения начала набора данных будет выглядеть как а его конца - каЗ. EOF. Обе функции, BOF и EOF, возвращают результат типа Boolean: BOF = True при достижении начальной записи набора данных, a EOF = True - последней записи. Поскольку значения типа Boolean - подходящие кандидаты на роль критериев завершения циклов и операндов условных выражений, их удобно использовать в циклических конструкциях, предполагающих прямое или обратное прохождение по записям набора данных. Строка 21 листинга 6.5, приведенного в главе 6, содержит пример использования функции EOF. Перемещение по записям Клас cordset содержит ряд функций, позволяющих перемещаться по записям открьпого набора данных: Move, MoveFirst, MoveLast, MoveNext и MovePrevious. Удачное, красноречивое имя, данное процедуре или функции, обеспечивает ей дополнительные преимущества. Это в полной мере относится к функциям группы Move. MoveFirst смещает указатель текущей записи к началу набора данных, a MoveLast - к концу; MoveNext позволяет переместиться к следующей записи, a MovePrevious - к пред]дущей. Наконец, Move обеспечивает возможность перемещения на произвольное число записей по направлению к концу или началу набора относительно текущей. Листинг 6.5 главы 6 содержит пример использования методов MoveFirst, MoveN-ext и EOF для решения частной задачи прохождения по всем записям набора данных. Важно помнить, что все эти функции - собственность класса ADODB. Recordset. Поэтому при необходимости их использования обращение всегда следует предварять 1) наименованием объекта типа ADODB. Recordset, который должен быть ранее объявлен и открыт; 2) символом точки: ИмяНабораДанных.ИмяМетода Указанная синтаксическая формула справедлива в отношении любых объектов, к свойствам и методам которых необходимо обратиться. Слева от точки располагается имя переменной-объекта, а справа - название свойства (элемента данных), функции или процедуры, принадлежащих объекту данного класса. Использование полей Набор данных (объект класса способен единовременно ссы- латься только на одну (текущую) запись. Запись может состоять из одного или нескольких полей. В упоминавшейся ранее таблице LIBRARY, например, содержались столбцы TITLE, AUTHOR, ISBN, PAGECOUNT, PUBLISHER И PUBLICATIONDATE. Объект на пересечении записи (строки) и столбца называют полем. Мы уже неявно пользовались объектами полей - просмотрите строки 10-15 листинга 7.2. Так, например, запись RTLE ) означает ссылку на поле столбца TITLE и текущей строки. Более подробные сведения о свойствах и методах класса Field вы сможете найти в файлах оперативной справочной системы Microsoft Visual Basic, если введете строку поиска Field Object (ADO). Наиболее важный атрибут объекта Field - свойство Value. Атрибут - это обобщенный термин, используемый для обозначения любого свойства или метода объекта класса. Новый термин Доступ к свойству Value осуществляется по общей схеме: ИмяОбъек-та .ИмяАтрибута. Свойство Value - это переменная типа Variant. Другими словами, Value способно хранить и возвращать любые данные, и компилятор успешно определит их тип. В строках 10-15 листинга 7.2, например, переменным Value присваиваются значения символьных строк, чисел и дат.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |