Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

Глава 9. Работа с базами данных

9.1. Создание баз данных в Data Manager Pro

Работая с Data Manager Pro, можно в визуальном режиме создавать и исполь­зовать базы различных СУБД: Access, FoxPro, dBase, Paradox и таблицы Excel [3,6‑7]. Рассмотрим средства Data Manager Pro на примере создания базы строек. База состоит из трех таблиц.

Таблица строек (Stroiki) содержит поля: наименование стройки (Ns), ко­ды на­селенных пунктов (Knp) и заказчиков (Kz), дату начала строи­тельства (Dn), мощность (M, число мест, коек, площадь и др.), сметную стоимость (Ss) и фактическую сумму выполненных работ (Fs) в стоимост­ном выражении.

Таблица заказчиков (Zakazhiki) содержит код (Kz) и наименование заказчика (Nz), а таблица населенных пунктов (Naseljonniipunkti) ‑ код (Knp) и наименование пункта (Nnp). Для создания базы запустим Visual Manager командойAdd-Ins/Visual Data Managerи появится окно базы данных (рис. 9.1.1).

Рис. 9.1.1. Окно базы данных

Вокне базы DataBase Window указаны компоненты базы в виде аналогичных проводнику Windows. В окне SQL Statement находится текст текущего запроса. На панели с кнопками находятся следующие кнопки:

Table Type Recordset‑ табличный тип представления данных: разре­шается использовать индекс, обновление данных отображается немед­ленно, можно работать только с одной таблицей.

Dynaset Type Recordset ‑динамический тип представления: можно работать с несколькими таблицами, индекс не используется, добавление и удаление записей не отображаются немедленно.

Snapshot Type Recordset ‑моментальный снимок: копия таблицы в оперативной памяти, быстрота, но нельзя корректировать данные.

Use data control on New Form‑ используется элемент управления Data при работе с базой. Текущая запись выводится в виде формы.

Don’t Use data control on New Form‑ не используется элемент управ­ления. Данные текущей записи выводятся в виде формы.

Use DBGrid control on New Form‑ используется элемент управ­ления Grid для работы с базой в табличной форме.

Begin a Transaction‑ начало транзакции: все изменения накап­ливаются в оперативной памяти и в базу не выводятся.

RollBack Current Transaction‑ отмена транзакции: оперативная па­мять очищается от накопившихся изменений без вывода их в базу.

Commit Current Transaction‑ принять транзакцию: все нако­пи­в­шие­ся изменения выводятся в базу, и оперативная память очища­ется. Меха­низм транзакции значительно повышает надежность работы базы данных.

Длясоздания базывыполним командуFile/New/Microsoft Access/Version 7.0 MDB, введем имя базы ”Строительство”, и сохраним базу в предварительно созданной одноименной папке. Для создания первой таблицы нажмите правую кноп­ку мыши в окне базы и выполните командуNew Tableиз контекст­ного меню; появится окно Table Structure (рис. 9.1.2).

Рис. 9.1.2. Окна структуры таблицы и добавляемого поля базы

В поле Table Nameукажем имя таблицыStroiki. К сожалению, версия Data Manager не русифицирована, поэтому следует везде исполь­зовать латинские буквы. Далее нажмем кнопкуAdd Field; появится окно добавления поля Add Field (рис. 9.1.2).

Рассмотрим основные поля этого окна. В поле Nameуказывается имя поля, в спискеTypeвыбирается тип поля (п.2.1).Sizeуказывает размер поля в байтах,AutoIncrFieldзадает режим автоматического увеличения значения поля на единицу при добалении новой записи в таблицу,FixedField/VariableFieldзадает фиксированный/перемен­ный раз­мер значения поля, вValidationRuleзадается условие правильности значе­ния, а вValidationText‑ текст сообщения об ошибке,DefaultValue ‑умал­чи­ваемое значение поля,Required=True - поле обязательное,AllowZero­Length=True - разрешается пустое текстовое значение. КнопкаОКзавер­шает создание текущего поля и выводит окно для описания следующего по­ля базы. КнопкаCloseзакрывает окно. Для изменения свойств су­щест­вующего поля (кроме его имени) нужно удалить его, а затем ввести вновь, что не очень удобно.

В нашей таблице строек введем поля: Ns(наименование строй­ки,Text, 50), Knp (код населенного пункта, Byte), Kz (код заказчика, Byte), Dn (дата начала строительства,Date/Time), Ss(сметная стоимость,Currency),Sf(стоимость фактически выполненных работ,Currency), M (мощ­ность, Text, 10). Нажав клавишуBuild the Table, создадим пустую таб­лицу с указанными полями.

Аналогичным образом создадим таблицу “Naseljonniipunkti” (насе­ленные пункты) с полями: Knp (код населен­ного пункта, Byte) и Nnp(наиме­нование насе­лен­ного пункта, Text, 50) и таблицу “zakazchiki” (заказ­чики) с полями Kz (код заказчика, Byte), Nz(наиме­но­ва­ние заказчика, Text, 50).

Для последних двух таблиц создадим индексы по коду, используя кнопкуAdd Indexокна структуры таблицы и окна построения индексов (рис. 9.1.3). Индексы пред­назначены для сорти­ров­ки таблиц, быс­трого поиска записей и для свя­зывания двух таб­лиц. ПолеPrimaryука­зы­вает, что ин­декс пер­вич­ный и служит для свя­зы­­ва­ния таблиц, и эта таб­ли­ца является роди­тель­ской.Unique=True за­дает уник­аль­ность,Ignore­Null=True указы­ва­ет, что за­­­писи с пустыми зна­че­­­ния­ми индекса пропус­кают­ся. Рис. 9.1.3. Окно создания индексов

Поле Nameзадает имя индекса,Indexed Fieldsуказывает значение поля-индекса (можно просто щелкнуть на нужном поле в окне доступных полейAvailable Fields).

Для заполнения таблицы данными можно дважды щелкнуть по име­ни таблицы в окне базы данных, и появится окно в виде формы или табли­цы в зависимости от нажатых первых шести кнопок панели Visual Mana­ger. Однако вводить можно только латинский текст. Для ввода рус­ского тек­ста нужно создать формы и вводить данные, используя их. Формы можно создать командой Utility/Data Form Designer, но лучше их форми­ро­вать вVisualBasic(п. 9.3). Допол­ни­тель­­ную обработку таблиц мож­но выполнить командами из контекст­но­го меню, если щелкнуть пра­вой кноп­кой мыши по имени нужной таблицы в окне базы. КомандойUtillity/Pre­fe­ren­cesможно сформировать список за­по­минаемых элементов в менюFile.

Подключение существующей таблицы к базеосуществляется командойUtility/Attachments/New.

Рекомендациипо “кириллизации”VisualDateManager: в ка­та­ло­геSamples\Visdataв файлах с расширениемFRMзаменить строкуCharset=0 наCharset=204, вVisualBasicоткрыть и выполнить проектSamples\Visdata\Visdata.VBPи можно вводить буквы кириллицы.