Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [ 47 ] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

CREATE TABLE

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

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

Как добавить существующую таблицу в базу данных? В Project Manager выберите пункт Tables из вкладки А11 или 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

DATABASE



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



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. Любые такие изменения могут нарушить



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [ 47 ] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146