Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
база данных.docx
Скачиваний:
167
Добавлен:
24.03.2015
Размер:
5.83 Mб
Скачать

12.5. Средства автоматизации разработки

Для автоматизации разработки баз данных и приложений в среде Visual FoxPro имеются следующие средства визуального программирования: Мас­тера(Wizards), Конструкторы(Designers) и Построители(Builders).

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

Конструкторы предоставляют существенно больше возможностей по фор­мированию облика создаваемого объекта. Естественно, что при этом может потребоваться несколько больше времени.

Построители помогают формировать отдельные элементы управления при создании объекта или комбинировать конструкции при создании выражений. Можно сказать, что Построители являются аналогами Конструкторов, ори­ентированными на автоматизацию создания составляющих элементов объек­тов.

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

12.6. Создание баз данных

Прежде чем рассматривать процедуры создания БД и таб лиц познакомимся с типами данных, используемых в них.

Перечень типов данных и краткая их харак геристика приведены в таблице 12.2.

Таблица 12.2

ланных isual Foi> I

Обоь наче ние

Тип

Диапазон

Объем памяти, байт

Описание

А

Аггеу

Массив данных некоторого типа

В

Double

от +/-4 14065648541247E-324 до+/-1 79769313486232E+308.

8

Число с плавающей точкой двойной точности

С

Character

Любые симвопы

1 254

Текстовая (символьная) строка

D

Date

от 01/01/100 до 12/31/9999

8

Дыта

F

Flnat

от -0.9999999999*10+19 до 0.9999999999*10+20

8

Такое же как Numeric

G

General

Определяется дост упной памятью

4

DBF)

Ссылка на OLE объект

Таблица 12.2 (продолжение)

Обоз­наче­ние

Тип

Диапазон

< )бъем памяти, бай/

Описание

'

Integei

- 2147483647 до 2147483646

4

Чигло целое

L

Logical

1

Логическое значение

М

Memo

Определяется доступной памятью

4

DBF)

Ссылка на примечание

N

Numeric

от -0.9999999999*10+19 до 0.9999999999*10+20.

8

Число с фиксированной точкой целое или дробное; допускает от 1 до 20 символов в таблице

Т

Datel ime

от 01/01/100 до 12/31/9999 и от 00 00:00 утра до 23-59 59 вечера

8

Дата и время

У

Currency

от-22337203685477 5807 до 922337203685477.5807.

8

Денежное значение

Приведенные в первой колонке таблицы буквенные обозначения исполь­зуютсядля отображения типа используемых переменных. Просмотреть спи­сок переменных можно по командеDISPLAY MEMORY.

Данные каждого типа могут храниться в полях таблиц этого же типа. Заметим, чтоVisual FoxPro не имеет команд определения типов перемен­ных. Определение типов выполняется при присваивании переменным пер­воначальных значений. Рассмотрим подробнее перечисленные типы дан­ных.

Character

Текстовый (символьный) тип используется для побайтного хранения сим­вольных строк длиной от 1 до 254 символов. Элементами строк могут быть печатные знаки — буквы, цифры, пробелы и знаки препинания. Константа символьного типа должна быть заключена в разделители, например:

"ci рока" 'строка' [строка]

Возможно сравнение символьных строк в соответ< т зии с алфавитным по­рядком, например:

« «< V=.T. "арба"<"арбуз"=.Т.

Здесь .Т. — логические значение (true). Сравнение идет допервого несов­падающего символа, или до окончания правой строки. Операторы сравнения те же. что и вNUMERIC. Дополнительно введена операция точного сравне­ния (длин строк и всех символов), обозначаемая как ==. Сравниваемые сим- вилы до 1жны быть набраны в одинаковом (нижнем или верхнем) регистре. Имеются два оператора склеивания строк + и -.

Пример:

"Весна "+ [96] = [ Весна 96J или

"Весна "- [96] - [ВеснаЭб ]

В Visual FoxPro добавлен новый тип символьных полейCharacter (binary), которые позволяют хранить символы сASCII-кодами от 0 до 255.

Следующие 4 типа данных (Numeiic, Float, Integer иDouble) можно ус­ловно объединить в одну общую группу числовых данных. Допустимыми символами полей перечисленных типов являются цифры. При работе с дан­ными этих типов возможно выполнение математических операций и автома­тический контроль вводимых данных при работе сVisual ГохРго. исключаю­щий ввод любых символов, кроме цифр.

Numeric

Числа в формате с фиксированной точкой. Целое отличается отсутствием дробной части. Например, оператор присваивания

X-4S.385

определяет тип переменной х как NUMERIC и присваивает ей указанное значение. Нат данными этого типа допустимы два типа операций:

  1. Арифметические

+ - * /

» * I / *

** или Л— возведение в степень.

  1. Сравнения

<•>, = ,<=,>=,

# или или != — не равно.

Float

Числовые данные типа Float включены для совместимости и функциональ­но эквивалентны данным типа Numeric.

В Visual FoxPro появились новые типы числовые данныхDouble иInteger.

Double

Числовые вещественные (с плавающей точкой) данные двойной точности.

Integer

Данные целочисленного типа применяются для представления целых чи­сел и позволяют сэкономить место для хранения данных.

Date

Этот тип используется для хранения ка лендарных дат. При этом применя­ются различные форматы представления данных, наппимер:

AMERICAN 12/31/93

GERMAN 31/12/93 и др.

Формат AMERICAN используется по умолчанию. Иной вид формата уста­навливается командой

SET DATE <формат>,

где <формат> — вид заказываемого формата. Поддерживается контроль правильности рводимых дат. Даты изменяются в диапазоне 01.01.100 до 12.31.У999. При задании дат XX века можно указыват ь только две последние цифры года.

DateTime

Тип дата и время появился в Visual FoxPro. Кроме 8 бай г, которые требо­вались для хранения дат в форматеDate, под данные данного типа отводится дополнительно еще 6 байтов для хранения времени в видеHHMMSS, где НН — часы от 00 до 23, М М — минуты,a SS — секунды. При превращении данных типаDate в данные типаDateTime автоматически устанавливается вр< мя 12:00:00. I [ад данными этого типа можно выполнять определенные арифметические операции, так, например, добавляя к дате 1 мы увеличиваем ее на один день, а добавлять секунды к неременной типаDateTime мы изме­няем (оответственно время.

Logical

Логический тип данных допускает два возможных значения и четыре ва- риан га их обозначения:

Истина (Да) — .Т. или t. или.Y. или .у.

Ложь (Нет) — .F или.f. или.N. или .п.

Результат сравнения данных любого типа является логическим значени­ем:

.Т. — если условие сравнения соблюдается,

.F. — в противном случае.

Над данными логического типа могут выполняться следующие операто­ры:

.NOT. — НЕ (отрицание или невыполнение условия):

.AND. — И(одновоеменное выполнение двух условий);

OR. — ИЛИ (выполнение хотя бы одною условия).

Memo

Поля базы данных (БД) данного типа предназначены для хранения сим­вольных срок произвольной длины. Значения типа Memo могут иметь про извольный размер, определяемый размером только жесткого диска компью­тера и хранятся в отдельном файле с расширением.FPT, имя которого совпадает с именем соответствующей таблицы. Каждая таблица имеет толь­ко одинMemo-файл вне зависимости от того, сколько Мето-полей она име­ет. ВMemo поляDBF-файлос заносятся лишь ссылки (указатели) на соот­ветствующие символьные строки. Значение Мето-поля можно присвоить переменной символьного типа и далее работать с ней как с символьной кон­стантой.

Само Memo поле имеет блочную структуру. Размеры блока изменяются с помощью командыSET BLOCKSIZE. При этом могут задаваться блоки в ди­апазоне от 33 до 511 байт. Размер блока большего размера кратен 512 байтам и обозначается целыми числами от 1 до 32. По умолчанию устанавливается блок размером в 64 байта. При этом запись в 65 байт потребует 2 блока, под которые будет отведена область памяти в 12Ь байт. При выборе размеров бло­ков Мето-полей необходимо стремиться к балан< у между перерасходом па­мяти, если блоки чрезмерно велики, и снижением скорост и работ ы с ними из-за увеличения блоков, обусловленного их небольшими размерами.

Зачечание

FPT-файл, созданный для какой-то таблицы, является неотъемлемой ее частью.

General

Поля баз данного типа позволяют хранить двоичные данные, а именно изображения, звук и т. д. Поля типа General являются специальной разно­видностью Мето-полей. Они хранятся в том жеFPT-файле, что и все Мето- поля данной таблицы, однако используются они иначе, чем обычные Мето- поля.

Currency

Это тип данных введен в Visual FoxPm для оперирования денежными сум­мами. Поля таблиц данного типа схожи с числовыми полями, но з отличие от числовою поля, для них определена точность в четыре знака после запя той. Поэтому при отображении целых чисел после денежной точки добавляются 4 нуля. Например, не 36, а 36.0000.

Array

Массив представ, гяет собой совок> пноегь элементов, имеющих общее имя. Массив объявляется командой DECLARE или DIMENSION, которая задает имя и длину массива в круглых скобках, например:

DECLARE masl(4,6), mas2( 10)

Здесь описаны два массива: двумерный массив с именем masl (размерность 4 на 6) и одномерный массив из 10 элементов.

При объявлении массива каждому его элементу по умолчанию присваива­ется начальное значение .F. (false). Каждый элемент массива может использо- ватьгя как переменная л обого допустимого типа и размера. Поэтому с ними можно и р 1ботагь как с переменными: присваивать значения, включать в вы­числяемые выражения, распечатывать значения и т. д.

()бращаются к элементу массива по имени массива с указанием индекса — номера этого элемента в массиве, например, mas(i).

Создание БД с помощью Конструктора

Конструктор БД позволяет создавать, модифицировать и индексировать таблицы БД, устанавливать постоянные межтабличные связи.

(Создание базы данных с помощью Конструктора БД выполним примени­тельно к базе данных «Учебная», спроектированной в предыдущем разделе. Прежде всего, определим типы и размеры полей БД следующим образом:

T_ZAGR(Fio. Predm, (тгирра.VidZan),

C15C10I3C1

T PREP(Fio, Stag, Dolgn, Kaf),

C15 12CIO 12

T_DOLGN(Dolgn, Oklad).

CIO N7

T_STAG(Stag, D Stag)

C12N7

В расема гриваемой БД подчеркнутые поля образуют ключ соответствую­щей таблицы. В таблице Т ZAGR ноля(Fio, Predm, Gruppa) образуют ключ при условии, что один и то г же преподаватель в одной группе не может одно­временно читать лекции и проводить практические занятия. В противном случае ключ таблицы будет включать все ее поля. В таблице ТPREDM ключ образуют поляPredm иGruppa с учетом допущения, что один и тот же пред­мет может чита гься в раз. шчных группах.

Замечание.

Наименования полей в рассматриваемой БД по традиции (в связи с огра­ничениями FoxPro) заданы латинскими буквами(Fio, Predin, Gruppa, Stag и т. д.). хотя вVisual FoxPi о 5.0 полям таблицы допускается задавать названия, отличные от латинс ких.

Перейдем непосредственно к созданию БД «Учебная». Д. [я удобства назо­вем ее Bdu

Для создания БД выполним команду File | New (Файл | Создать). Вре­зультате откроется диалоговое окноNew (Новый) (рис. 12.2), в котором пе­речислены все тины файловVisual FoxPro, которые можно создать.

При выбранном переключателе Database (база данных)нажатие кнопкиNew file (Новый файл)приводит к появлению диалогового окна Create (Со­здать). Всписке в< рхней час ги окна < ледует выбрать папку, в поле Enter (ввод) указать имя файла бапы даншrx (Bdii.dbc) и нажать кнопку Сохранить.

«л

Врезультате откроется диалоговое окноDatabase Designer —Bdu (окно Конструктооа созданной базы данныхBdu). Всистемном менюVisual FoxPro появится новое меню Database (база данных),содержащее команды Конст­руктора БД (табл. 12.3).

Таблица 12.3

Команды меню Database

Команда

Назначение

New Table

Создание таблицы

Add Table

Добавление таблицы в БД

Now Remote View

Создание удаленного представления данных

New Local View

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

448

Часть 3. Современные СУБД и их применена *

Таблица 12.3 (продолжение)

Команд^

Назначение

Modify

Модификация таолицы

Browse

Редактирование таблицы в режиме Browse

Remove

Удаление таблицы из БД

Rebuild Table Indexes

Перестройка индексов

Remove Deleted Records

Физическое удаление помеченных записей

Edit Relationship

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

Referential Integrity

Определение условий целое гнисти данных

Edit Stored Procedures

Редактирование хранимых процедур

Clean Up Database

Очистка БД от помеченных на удаление ооъектоь

Создать БД можно также, набрав в командном окне Visual FoxPro команд)

CREATE DATABASE ИмяБазыДанных

Если имя БД в команде не указано, то при ее выполнении открывается диалоговое окно Create (создать),в котором нужно указать имя создавае­мой БД.