Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Горев “Эффективная работа с СУБД”.pdf
Скачиваний:
225
Добавлен:
28.06.2014
Размер:
4.71 Mб
Скачать

converted to PDF by HupBaH9I

Grid.DoScroll(nDirection)

Для выполнения нужного действия аргумент nDirection может принимать следующие значения:

0 - прокрутка на строку вверх.

1 - прокрутка на строку вниз.

2 - прокрутка на страницу вверх.

3 - прокрутка на страницу вниз.

4 - прокрутка на колонку влево.

5 - прокрутка на колонку вправо.

6 - прокрутка на страницу влево.

7 - прокрутка на страницу вправо.

Глава 6

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

6.1. Visual FoxPro

Создание и модернизация структуры базы данных Использование словаря данных Создание и модернизация структуры таблиц

6.2.Access

6.3.Visual Basic

6.4.MS SQL Server

Планирование процесса наращивания

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

6.1. Visual FoxPro

В Visual FoxPro базы данных имеют собственную структуру организации данных и предоставляют дополнительные возможности разработчикам. В базе данных вы можете использовать расширенное представление данных на уровне таблиц, например, правила на уровне полей и записей, значения полей по умолчанию, триггеры. Здесь же вы можете хранить процедуры и устанавливать постоянные отношения между таблицами. Базы данных можно

использовать для обеспечения доступа к внешним источникам данных и для создания представлений локальных и внешних таблиц.

Вэтом параграфе мы рассмотрим:

визуальные методы создания БД и ее компонентов;

использование основных команд FoxPro для программного создания компонентов БД;

организацию связей между таблицами и использование индексов.

Создание и модернизация структуры базы данных

После того, как вы спроектировали базу данных, ее можно создать в интерактивном режиме, используя диалоговые средства Visual FoxPro или команду CREATE DATABASE. Если вы разрабатываете пользовательское приложение, обязательно создавайте базу данных, используя

Project Manager.

В Project Manager выберите вкладку Data, затем в списке пункт Databases. Нажмите кнопку New. Откроется Конструктор БД, который показан на рис. 6.1. На этом же рисунке вы найдете необходимые пояснения для работы с ним.

converted to PDF by HupBaH9I

Рис. 6.1. Окно и панель инструментов Конструктора БД в Visual FoxPro

Вновь созданная база данных пуста и не содержит никаких таблиц и других объектов. В табл. 6.1 приведены команды и функции, которые вы можете использовать для

программного управления базами данных и их объектами.

Таблица 6.1. Команды и функции, управляющие базами данных и их объектами

ADATABASE()

CREATE VIEW

MODIFY

 

 

CONNECTION

ADBOBJECTS()

DBC()

MODIFY

 

 

DATABASE

ADD TABLE

DBGETPROP()

MODIFY

 

 

PROCEDURE

ALTER TABLE

DBSETPROP()

MODIFY

 

 

STRUCTURE

APPEND

DELETE

MODIFY VIEW

PROCEDURES

CONNECTION

 

CLOSE DATABASE

DELETE

OPEN DATABASE

 

DATABASE

 

COPY

DELETE VIEW

PACK DATABASE

PROCEDURES

 

 

CREATE

DISPLAY

REMOVE TABLE

CONNECTION

DATABASE

 

CREATE

INDBC()

SET DATABASE

DATABASE

 

 

CREATE SQL VIEW LIST DATABASE

VALIDATE

converted to PDF by HupBaH9I

DATABASE

CREATE TABLE

При создании БД не забудьте, что важной особенностью Visual FoxPro является то обстоятельство, что каждая таблица может существовать в одном из двух состояний: либо в виде свободной таблицы, представляющей собой файл DBF, не ассоциированный ни с одной из баз данных, либо в виде таблицы базы данных - файла DBF, включенного в какую-либо БД. При этом если таблица включена в БД, то она не может быть включена ни в какую другую БД. Для таблиц, ассоциированных с базой данных, можно установить ряд свойств, которыми не могут обладать свободные таблицы. Это такие свойства, как триггеры, правила на уровне полей и записей и постоянные отношения между таблицами.

Вы можете включить таблицы в базу данных, создав их внутри открытой базы данных или добавив туда уже существующие таблицы.

Как добавить существующую таблицу в базу данных? В Project Manager выберите пункт Tables из вкладки Аll или Data, затем выполните команду Add. Программным путем то же самое можно сделать, выполнив следующие команды:

OPEN DATABASE auto_store && Открывается база данных && AUTO_STORE ADD TABLE salesman && В нее добавляется таблица SALESMAN

Чтобы сделать таблицу частью базы данных, необходимо явно включить ее в базу данных. Изменение структуры свободной таблицы не вносит ее автоматически в базу данных, даже если сделать это при открытой базе данных с помощью команды MODIFY STRUCTURE.

Не забудьте, что вы можете ассоциировать таблицу только с одной базой данных. Если данные из какой-то таблицы необходимо использовать в нескольких БД, для исключения дублирования информации наиболее простой путь - не включать эту таблицу ни в какую БД, а оставить ее свободной. Данные из существующего файла DBF можно использовать, не включая его в базу данных. В то же время не представляет труда использовать информацию и из таблицы, расположенной в другой БД.

Как получить доступ к таблице из другой базы данных? Создайте в базе данных представление, включающее нужную таблицу. Или получите доступ к таблице с помощью команды USE и разделительного символа "!". Символ "!" надо использовать для ссылки на таблицу из другой, не текущей, базы данных. Например, если вы хотите просмотреть таблицу Salesman из базы данных Auto_Store, выполните следующие команды:

USE Auto_Store!Salesman

BROWSE

В предыдущем примере база данных Auto_Store открывается автоматически при выполнении команды USE, однако Visual FoxPro не устанавливает Auto_Store в качестве текущей базы данных. Открытая таким способом база данных автоматически закрывается, когда вы закрываете таблицу, если база данных не была явно открыта до этого.

Когда вы добавляете таблицу в базу данных, Visual FoxPro изменяет заголовок файла таблицы, включая туда информацию о пути и имени файла базы данных. Этот путь и имя файла базы данных называются обратной связью, поскольку эта информация связывает таблицу с владеющей ею базой данных. Процесс удаления таблицы из базы данных не только удаляет ссылку на таблицу и ассоциированную с ней информацию из словаря БД Visual FoxPro, но и изменяет обратную связь, чтобы отметить таблицу как свободную.

Вы можете удалить таблицу из базы данных интерактивно или с помощью команды REMOVE TABLE. При удалении таблицы из базы данных вы можете и физически удалить файл таблицы с диска. В Project Manager выберите имя таблицы и нажмите кнопку Remove. Если вы работаете в Конструкторе баз данных, выделите имя таблицы и выберите команду Remove из меню

Database.

Последовательность действий по удалению таблицы Salesman из БД Auto_Store программным путем показа в следующем примере:

OPEN DATABASE Auto_Store

REMOVE TABLE Salesman

Удаление таблицы из базы данных автоматически не удаляет файл таблицы. Если вы хотите одновременно удалить таблицу из базы данных и DBF-файл с диска, включите опцию DELETE в

команду REMOVE TABLE.

Удалить базу данных с диска можно с помощью Project Manager или командой DELETE

converted to PDF by HupBaH9I

DATABASE.

Для удаления базы данных с диска всегда используйте один из вышеуказанных методов.

Удаление базы данных с помощью диспетчера проектов или по команде DELETE DATABASE автоматически обновляет обратные связи в файлах таблиц базы данных. Если вы удалите БД с помощью какой-нибудь утилиты работы с файлами, то в таблицах, принадлежащих БД, останутся ссылки на уже несуществующую БД, и вы не сможете их использовать.

Команда DELETE DATABASE не удаляет файлы таблиц с диска, а только помечает их как свободные. Если вы хотите одновременно с базой данных удалить и файлы таблиц, включите опцию DELETE TABLES в команду DELETE DATABASE.

В приложении Visual FoxPro можно использовать несколько баз данных одновременно. Для этого либо одновременно откройте все требуемые вам БД, либо сошлитесь на таблицы в закрытых базах данных, как это было показано ранее. Если одновременно открыто несколько БД,

вы можете установить текущую базу данных и выбирать таблицы из нее без указания конкретной ссылки.

Как открыть несколько баз данных? В Project Manager выделите имя базы данных и нажмите кнопку Modify или Open, в зависимости от вашей цели. Или последовательно используйте команду OPEN DATABASE.

Когда вы открываете новую базу данных, старые не закрываются. Все уже открытые базы данных так и остаются открытыми, а последняя открытая БД становится текущей.

Все таблицы или другие объекты, которые вы создаете, автоматически становятся частью текущей базы данных. Команды и функции, такие как ADD TABLE и DBC(), манипулирующие с открытыми БД, оперируют с текущей базой данных.

Вы можете объявить текущей любую из открытых БД с помощью раскрывающегося списка на стандартной панели инструментов Visual FoxPro или командой SET DATABASE.

В следующем примере открываются три базы данных, первая объявляется текущей, и ее имя отображается на экране с помощью функции DBC():

OPEN DATABASE Auto_Store

OPEN DATABASE Connect_Data

OPEN DATABASE Count_Data

SET DATABASE TO Auto_Store

?DBC()

ВVisual FoxPro одна или несколько баз данных открываются автоматически при выполнении запроса или формы, в которых используются несколько баз данных. Для того чтобы не потерять управление в программе, явно объявите текущую базу данных.

Как выбрать таблицу из текущей базы данных? Выполните команду USE со знаком вопроса "?"

В диалоговом окне Use выберите нужную таблицу. Если вам нужна таблица, не входящая в открытую базу данных, в диалоговом окне Use выберите опцию Other.

Закрыть базу данных можно в Project Manager или командой CLOSE DATABASE. В Project Manager выделите имя базы данных и выберите команду Close. В следующем примере закрывается база данных Auto_Store:

SET DATABASE ТО Auto_Store

CLOSE DATABASE

Оба указанных способа закрывают базу данных автоматически. Еще один способ закрыть базу данных и другие открытые объекты - включить предложение ALL в команду CLOSE.

Выполнение команды CLOSE DATABASE в окне Command не приведет к закрытию базы данных, если она была открыта одним из следующих способов:

В Project Manager в расширенном режиме просмотра содержимого базы данных.

Формой, запущенной в собственной Data Session.

Вэтих случаях БД остается открытой до тех пор, пока она не будет закрыта в Project Manager или пока не будет закрыта соответствующая форма.

ВVisual FoxPro текущая база данных используется в качестве первичной области видимости

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

Например, если таблица Model ассоциирована с базой данных Auto_Store, приведенные ниже команды всегда найдут таблицу Model в базе данных.

OPEN DATABASE Auto_Store

converted to PDF by HupBaH9I

ADD TABLE C:\MYPROJECT\MODEL.DBF

USE Model

В следующем примере поиск таблицы Body производится в текущей базе данных:

USE Body

Если таблица Body не принадлежит текущей базе данных, ее поиск вне базы будет происходить в пути по умолчанию.

Всегда можно указать полный путь к файлу таблицы, чтобы открывать ее вне зависимости от ее принадлежности к какой-либо базе данных, например, если вас не устраивают изменения в местонахождении таблиц. Однако ссылки на таблицу только по ее имени могут значительно повысить производительность приложения, поскольку в Visual FoxPro доступ к именам таблиц из базы данных осуществляется гораздо эффективней, чем по полному пути файла.

Когда вы создаете базу данных, Visual FoxPro создает и открывает для монопольного использования файл с именем БД и расширением DВС (DataBase Container). В этом файле хранится вся информация о базе данных, включая имена файлов и объектов, ассоциированных с ней. Сами объекты верхнего уровня типа таблиц или полей в файле DBC не хранятся. Хранятся только пути к файлам таблиц.

Для того чтобы увидеть структуру базы данных, вы можете пролистать файл базы данных, посмотреть схему, проверить базу данных и даже расширить файл DВС.

Схема базы данных - это визуальное представление структур таблиц и установленных отношений между ними. Схема открытой базы данных отображается в окне Конструктора баз данных.

В Конструкторе баз данных панель инструментов Database можно использовать для создания новой таблицы, добавления существующей таблицы в базу данных, удаления таблиц из базы данных, изменения структуры таблицы. Здесь же вы можете редактировать хранимые в базе процедуры.

Файл базы данных содержит записи для каждой таблицы, представления, индекса, индексного тега, установленных отношений и связей, ассоциированных с базой данных; а также записи для каждого поля таблицы или представления, имеющего расширенные атрибуты. В файле хранится и запись, содержащая все хранимые процедуры базы данных.

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

CLOSE DATABASE Auto_Store

USE AUTO_STORE.DBC EXCLUSIVE

BROWSE

Не используйте команду BROWSE для модификации файла базы данных, если вы не знакомы со структурой файла DBC. Любая ошибка при изменении файла DBC может разрушить базу данных и привести к потере информации.

В каждом файле DВС имеется поле примечаний с именем User, в котором вы можете хранить собственную информацию о каждой записи базы данных. Вы можете также расширить файл DВС, добавив туда поля, чтобы удовлетворить свои собственные потребности разработчика. Для изменения структуры файла DBC вы должны открыть его для монопольного использования.

Как добавить поле к файлу DВС?

1.Откройте файл DВС для монопольного доступа командой USE.

2.Выполните команду MODIFY STRUCTURE.

Вследующем примере открывается Конструктор таблиц, где вы можете добавить поле в файл

AUTO_STORE.DBC:

USE AUTO_STORE.DBC EXCLUSIVE

MODIFY STRUCTURE

При добавлении нового поля в файл базы данных начинайте имя этого поля с символов "U_" для обозначения поля пользователя. Это поможет вам избежать конфликтов с любыми возможными изменениями структуры файла DBC.

Не изменяйте системные поля в файле DBC. Любые такие изменения могут нарушить

Соседние файлы в предмете Программирование на Delphi