ebook img

Access. База данных PDF

23 Pages·0.247 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Access. База данных

Министерство образования Российской Федерации Государственное учреждение Кузбасский государственный технический университет Кафедра вычислительной техники и информационных технологий ACCESS Объекты доступа к данным Методические указания к лабораторной работе для студентов специальности “Экономика и управление на предприятиях ” по курсу “Автоматизация экономических расчетов ” Составитель Е.А. Бессонов Утверждены на заседании кафедры Протокол № 10 от 26.06.01 Рекомендованы к печати учебно- методической комиссией специальности 060800 Протокол № 1 от 27.09.01 Электронная копия хранится в библиотеке главного корпуса ГУ КузГТУ Кемерово 2002 1 Введение Одним из компонентов MS Access является ядро базы данных Jet, которое содержит 31 объект, называемый объектами доступа к данным DAO (Data Access Objects). Объекты Jet обладают свойствами и мето- дами и могут (кроме DBEngine) образовывать семейства однотипных объектов. С помощью объектов DAO можно: - создавать базы данных, изменять структуру их таблиц, запросов, ин- дексов и связей; - реализовывать защиту данных; - работать с базами данных различных типов и связывать таблицы из других баз данных со своей базой; - подключаться к базам данных на удаленных серверах и разрабатывать клиент-серверные приложения. Объекты DAO являются существенным дополнением к объектам MS Access (Application, Form, Control, Report, Screen, Err, Debug). Пред- полагается, что читатель знаком с методическими указаниями по Access “Запросы на языке SQL”, “Пользовательские функции” и “Объекты и события”. Все необходимые команды встроены во внутренний код MS Access. Команды пользователя, передаваемые через интерфейс, преобразуются автоматически в программы, манипулирующие объектами DAO. Воз- можность обращаться к Jet напрямую расширяет возможности автома- тизации обработки информации. Можно работать, например, с запися- ми источников записей формы без открытия формы. Это ускоряет об- работку, поскольку не требуется время на перерисовку формы на экра- не. Jet – независимый от приложений механизм. Он лишь предоставля- ет свои объекты доступа к данным с их методами и свойствами про- граммам-клиентам. В качестве клиента может выступать не только Access, но и некоторые другие приложения MS Office. Объектами баз данных можно, например, управлять из MS Excel. Объекты DAO составляют иерархическую структуру, изображен- ную на рисунке. На модели не представлены семейства Properties, при- надлежащие всем объектам, кроме Errors. Модель отображает только семейства. Исключение составляет объ- ект DBEngine, не входящий ни в какие семейства. Каждое семейство включает соответствующие объекты. Так, например, семейство 2 QueryDefs (запросы) содержит объекты типа QueryDef (запрос). Семей- ства также являются объектами и имеют свои методы и свойства. DBEngine ___Errors ___WorkSpaces __Databases __Containers____Documents __QueryDefs____Fields |__Parameters __RecordSets____Fields __TableDefs_____Fields |__Indexes __Groups___Users __Users_____Groups Рис . 1. Иерархия объектов DAO Ссылка на объекты Ссылка на любой объект содержит путь от вершины дерева (DBEngine) до данного объекта. Для разделения объектов и семейств используются точки, а для перехода от семейства к одному из ее эле- ментов можно использовать один из четырех вариантов. Семейство!Имя_Объекта Семейство(“Имя объекта”) Семейство(Переменная) Семейство(j) Восклицательный знак позволяет задавать имя объекта без кавычек. В круглых скобках можно указать имя переменной, содержащей имя объекта. Вместо имени допускается использовать порядковый номер j объекта в семействе. Нумерация объектов в семействе осуществляется автоматически, начиная с 0. Пример MsgBox DBEngine.WorkSpaces(0).Databases(0).OpenRecordset! _ Преподаватели.Fields(“Фамилия”) Workspaces – Семейство рабочих пространств или сеансов. В каждом рабочем пространстве можно открыть базу данных. Нулевое рабочее пространство создается автоматически. Дополнительные сеансы нужно 3 создавать в программе. Databases – семейство открытых баз данных. Нулевая база данных соз- дается автоматически в нулевом рабочем пространстве. В приведенном примере содержимое поля (Field) “Фамилия” таб- лицы (набора данных) “Преподаватели” выводится в диалогом окне. Пример содержит 3 точки. Каждая точка является оператором, на вы- полнение которого затрачивается некоторое время. Сократить длину инструкций и ускорить их выполнение позволяют объектные перемен- ные. Пример Dim db As Database Dim R As RecordSet Set db = DBEngine.Workspaces(0).Databases(0) Set R = db.OpenRecordset(“Преподаватели”) MsgBox R.Fields(“Фамилия”) Пример выполняет то же действие, что и предыдущий. Объектные переменные обычно используются многократно, и это оправдывает их применение. Типы объектов DAO Объекты DAO делятся на постоянные и непостоянные. Постоянные объекты сохраняются в файлах .mdb (базы данных) или .mda (информация о группах и пользователях). К постоянным объ- ектам относятся Database, TableDef, Index, QueryDef, Parameter, Relation, User, Group, Field для TableDef и QueryDef, Property постоян- ного объекта. Непостоянные объекты уничтожаются при выходе из процедуры, в которой они созданы. К непостоянным объектам относятся все семей- ства, Property непостоянного объекта, DBEngine, Error, Container, Document, RecordSet и Field для RecordSet. Для того чтобы обратиться к существующему постоянному объек- ту, его нужно открыть методом Open. В иных случаях необходимо соз- дать новый объект Создание новых объектов Создание нового объекта осуществляется в 3 этапа. o Создание объекта методом Create. o Присвоение свойств. 4 o Добавление объекта к семейству. Пример Dim db As Database, Список As TableDef Dim Профессия As Field Set db = DBEngine.WorkSpaces(0).Databases(0) Set Список = db.CreateTableDef (“Список”) Set Профессия = Список.CreateField (“Профессия”, Db_Text) Список.Fields.Append Профессия Db.TableDefs.Append Список В примере используются объектные переменные db, Список и Профессия. Первый оператор Set создает ссылку на текущую базу дан- ных. Она имеет порядковый номер 0 и создается автоматически. Авто- матически создается и текущий сеанс работы, также имеющий поряд- ковый номер 0. Можно создать еще несколько сеансов работы и от- крыть в каждом из них БД. В интерактивном режиме можно открыть только одну БД. Второй оператор Set с помощью метода CreateTableDef объекта Database создает таблицу и присваивает ей имя “Список”. Переменная Список теперь содержит ссылку на эту таблицу. Последний оператор Set с помощью метода CreateField объекта TableDef создает поле с именем “Профессия” (первый аргумент метода) текстового типа. Тип задан константой Db_Text во втором аргументе метода. Следующая и предпоследняя инструкция – вызов метода Append семейства Fields. Метод добавляет (включает) поле Профессия в семей- ство полей (Fields) таблицы Список. Последняя инструкция рассматри- ваемого фрагмента программы добавляет с помощью метода Append новую таблицу в семейство TableDefs таблиц. После выполнения всех инструкций в окне БД появляется таблица Список, имеющая единственное текстовое поле Профессия. Подобным образом можно создать таблицу с произвольным количеством полей различного типа. Можно создавать базы данных методом CreateDatabase, запросы методом CreateQueryDef. Если существует на- бор данных типа RecordSet, перед использованием его следует открыть с помощью метода OpenRecordset. Для эффективного использования многочисленных объектов, мето- дов и свойств необходимо активно использовать справочную систему NS Access. 5 Справочная система Команда Справка|Содержание|Программирование позволяет полу- чить различные сведения о программировании. Здесь, например, можно узнать о редакторе Visua Basic, о работе с макросами, событиями, мо- дулями. Раздел “Справочник по языку Visual Basic Microsoft Access” содержит макрокоманды, объекты и семейства, методы, свойства, функции, инструкции, события и константы. Объекты Dao удобно рассматривать в окне Обозревателя объектов (рис.2), которое можно открыть командой Вид|Обозреватель объектов или клавишей F2. Рис.2. Окно обозревателя объектов Окно Обозревателя объектов состоит из нескольких списков (Рис.2), обеспечивающих трехуровневое представление информации. Раскрывающийся список Проект/Библиотека в левом верхнем углу окна содержит перечень всех библиотек, на которые есть ссылки. В окне Сервис|Ссылки следует флажком отметить библиотеку DAO (устано- вить на DAO ссылку). При выборе из списка в окне Обозревателя объ- ектов нужной библиотеки, например DAO, в левом поле Classes ото- бражается список следующего уровня – перечень всех объектов, вхо- дящих в эту библиотеку. Выбрав один из них, например RecordSet, в правом поле Members Of можно увидеть все методы и свойства этого объекта. В нижней части окна, называемой областью описания, ото- бражается краткое описание выбранного элемента. Ниже приводится краткая характеристика некоторых объектов 6 DAO и их важнейших свойств и методов. DBEngine DBEngine является объектом самого высокого уровня в иерархии DAO и используется для представления самого ядра Jet базы данных. DBEngine содержит семейство WorkSpaces (WorkSpace - сеанс или ра- бочее пространство) и метод CreateWorkspace создания рабочего про- странства, а также метод CompactDatabase для уплотнения базы дан- ных. WorkSpace В ядре базы данных Jet объект WorkSpaсe используется в основном для обеспечения защиты. Система защиты устанавливается с помощью создания рабочей группы, которая управляется специальным систем- ным файлом. С помощью методов WorkSpace можно создавать объекты User (пользователь) и Group (группа) для пользователей и групп с раз- личными полномочиями, определенными в текущей рабочей группе. Методом CreateDatabase можно создать базу данных , а OpenDatabase – открыть существующую. В рабочем пространстве можно использовать транзакции. Часто для обеспечения целостности данных требуется рассматри- вать определенный набор операций как одну неразрывную группу. На- пример, перевод денег с одного банковского счета на другой состоит из двух операций: удаление денег с одного счета и добавление такой же суммы денег на другой счет. На практике, однако, либо обе операции должны завершиться успешно, либо ни одна из них не должна быть вы- полнена. В данной ситуации обе операции объединяются в одну группу, на- зываемую транзакцией. В MS Access транзакция определяется как на- бор операций, результат которых подтверждается (сохраняется) в том и только в том случае, если все операции набора прошли успешно. Если какая-либо из операций транзакции не выполнена, то все выполненные ранее операции отменяются, и данные возвращаются к тому состоянию, которое они имели до начала выполнения транзакции. Чтобы начать транзакцию, надо выполнить метод сеанса BeginTrans. Транзакции группируют связанные по смыслу операции таким образом, что внесен- ные изменения хранятся в буфере памяти до вызова одного из методов CommitTrans (завершение транзакции) или RollBack (откат). 7 Database Объект Database представляет открытую базу данных, в которой можно выполнять разнообразные операции. База данных может быть не только файлом .mdb программы Access, но и базой данных, созданной рядом других приложений. Большинство операций DAO производится через объект Database или подчиненные ему объекты (семейства Containers, QueryDefs, RecordSets, Relations, TableDefs). С помощью ме- тодов можно создать свойство (CreateProperty), запрос (CreateQueryDef), отношение между таблицами (CreateRelation), описа- ние таблицы (CreateTableDef). Метод Execute позволяет выполнить су- ществующий запрос, а OpenRecordSet – открыть существующий набор данных. QueryDef Объект QueryDef является постоянным объектом, который исполь- зуется для хранения операторов запроса в файле БД. К методам отно- сятся CreateProperty (создать свойство), OpenRecordSet (открытие набо- ра данных, порождаемого запросом), Execute (выполнить запрос). Для запросов можно создавать параметры (семейство Parameters). TableDef Для ссылки на таблицы внутри объекта Database, то есть на локаль- ные таблицы, хранимые в mdb-файле, либо на связанные таблицы во внешних базах данных используются объекты TableDef. Объект TableDef используется для изменения структуры таблиц в базе дан- ных, а не для чтения или изменения данных внутри таблиц. Для чте- ния и изменения данных используется объект RecordSet. С помощью объекта TableDef можно создавать объекты Field и Index, обновлять связи с таблицами из внешних баз данных, устанавливать ограничения на значения для добавляемых в таблицу полей, определять количество записей в таблице. TableDef содержит семейства Fields и Indexes, а также методы CreateField (создать поле), CreateIndex (создать индекс), CreateProperty (создать свойство), OpenRecordset (открыть набор данных). 8 Field Для обращения к полям объектов TableDef, QueryDef, Index, Relation и Recordset используется объект Field. В объектах TableDef, Index и Relation объект Field применяется для установки или изменения структуры таблиц, а также для установки индексов и зависимостей. В объекте RecordSet объект Field используется для выборки и обновле- ния отдельных полей записи в наборе данных. Index Объект Index используется для указания порядка записей в объек- тах TableDef и того, могут ли вводиться повторяющиеся записи.. DAO использует Index при соединении таблиц в момент создания объектов RecordSet из нескольких таблиц. Следует отметить, что Index влияет на сортировку записей только в объектах RecordSet табличного типа. При этом он не влияет на реальное упорядочение записей в объекте TableDef. Записи в объекте TableDef упорядочиваются в соответствии с последовательностью их добавления в объект. Recordset С помощью объекта RecordSet можно извлекать, добавлять, изме- нять и удалять отдельные записи из одной таблицы или связанные за- писи из нескольких таблиц. Набор записей может относиться к типу Table (таблица), Dynaset (динамический набор) или SnapShot (статиче- ский набор). Табличные наборы используются для доступа к записям в таблице, хранимой в mdb-файле. С помощью табличных наборов можно извле- кать, добавлять, обновлять и удалять записи в отдельной таблице. Динамические наборы применяются для доступа к записям в таб- лице, хранимой в mdb-файле или связанной с ним. Динамические набо- ры используются также для доступа к записям, которые являются ре- зультатом выполнения запроса. С помощью этих наборов можно извле- кать, добавлять, обновлять и удалять записи, как в отдельной таблице, так и в нескольких в соответствии с определением запроса. Статические наборы подобны динамическим в том смысле, что они используются для доступа к записям в локальной таблице, связанной таблице или в запросе. Отличие состоит в том, что они используются только для чтения данных, а запросы на изменение (добавление, удале- 9 ние, обновление записей) выполнены быть не могут. Динамический на- бор содержит ссылки на записи в таблице, а статический набор содер- жит копии записей. При однонаправленном просмотре записей наи- лучшую производительность обеспечивают статические наборы запи- сей с последовательным доступом (Forward-only). Объект RecordSet обладает семейством Fields, которое обеспечива- ет доступ к отдельным полям записи, и множеством методов, которые позволяют создавать новые записи (AddNew), уничтожать существую- щие (Delete), обновлять (Edit, Update), создавать копии набора (Clone), искать запись (Seek, FindFirst, FindLast, FindNext, FindPrevious), пере- мещаться по записям (Move, MoveFirst, MoveLast, MoveNext, MovePrevious). Объект RecordSet создается методом OpenRecordSet, а закрывается методом Close. Метод ReQuery обновляет набор. Отметим наиболее распространенные свойства объекта RecordSet. BOF. Указатель записи находится перед первой записью или набор пуст. Если в этой ситуации применить метод FindPrevious или MovePrevious, возникает ошибка. EOF. Указатель записи находится после последней записи набора. По- пытка применить метод MoveNext или FindNext приводит к ошибке. BookMark. Закладка, являющаяся строкой текста. Она однозначно иден- тифицирует текущую запись. Значение закладки можно запомнить в текстовой переменной и впоследствии присвоить свойству BookMark формы. В форме текущей снова становится отмеченная ранее запись. Filter. Задает или возвращает строковое выражение, которое использу- ется для отбора записей объекта RecordSet динамического или статиче- ского типа. При задании фильтра используется предложение WHERE языка SQL без ключевого слова WHERE. Названия полей объекта RecordSet заключаются в квадратные скобки. Для того чтобы фильтр заработал, нужно открыть новый объект RecordSet на основе того объ- екта, для которого установлен фильтр. Index. Задает имя индекса для объекта RecordSet табличного типа. Это позволяет использовать в объекте RecordSet метод Seek для отыскания записей, удовлетворяющих заданному критерию. LastModified. Возвращает закладку последней записи, модифицирован- ной в объекте RecordSet Name. Имя источника (единственного) для объекта RecordSet, то есть имя таблицы, объекта QueryDef или первые 256 символов строки инст- рукции SQL, формирующей объект. Устанавливается методом

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.