Команды для баз данных в Visual FoxPro
« Назад Команда CREATE DATABASE [DatabaseName | ?]создает базу данных и открывает ее. Созданная база данных всегда открывается монопольно независимо от установки команды SET EXCLUSIVE. Файл базы данных имеет расширение DBC, ассоциированный memo-файл – расширение DCT, ассоциированный индексный файл – расширение DCX. Параметр (см. также табл. 1.6): DatabaseName – имя файла базы данных. Если путь отсутствует, то база данных создается в директории по умолчанию, задаваемой командой SET DEFAULT. Информация об открытых базах данных заносится в массив функцией ADATABASES( ); информация о текущей базе данных отображается командой DISPLAY DATABASE. Созданная база данных становится текущей, поэтому следующие за ней команды CREATE TABLE, не имеющие опции FREE, создадут таблицы, этой базе принадлежащие. Пример. В корневой директории диска d: создается база данных People и в нее добавляется таблица Friends. Затем выводится информация о созданных объектах. set safety on create database d:\People create table d:\Friends (FirstName C(20), LastName C(20)) clear && Выводим информацию о базе данных display databases Результат: Database Name: PEOPLE Database Path: d:\people.dbc Database Version: 10 Database StoredProceduresDependencies Table friends *Path friends.dbf Field firstname Field lastname Для повторного использования этого кода необходимо предварительно проверить, открыта ли база данных d:\People.dbc. Если да, то, сделав базу данных d:\People.dbc текущей, выполнить следующее:
Если база данных d:\People.dbc закрыта, то проверить, имеется ли она на диске. Если да, то удалить ее с диска (команда DELETE DATABASE). Таким образом, повторный запуск обеспечивается следующим кодом: && Проверяем, открыта ли база данных d:\People.dbc, имеющая длинное имя People if DBUsed('PEOPLE') then && Проверяем, является ли база данных d:\People.dbc текущей if not DBC( ) = 'D:\PEOPLE.DBC' then set database to 'd:\People' endif && Проверяем, входит ли таблица Friends в текущую базу данных if InDBC('Friends', 'TABLE') then remove table 'Friends' endif close databases else && База данных d:\People.dbc закрыта && Проверяем, есть ли файл 'd:\People.dbc' на диске if File('d:\People.dbc') then delete database d:\People.dbc endif endif && Теперь можно создать базу данных и принадлежащую ей таблицу create database d:\People create table d:\Friends (FirstName C(20), LastName C(20)) Поведение программы зависит от установки SET SAFETY. Так, если SET SAFETY установлен в ON, то обширное предупреждение возникнет при выполнении команды REMOVE TABLE (рис. 14.3). Рис. 14.3. Выполняется команда REMOVE TABLE Ответив Yes, мы потеряем длинное имя таблицы, заголовки полей, постоянные отношения, в которых участвует таблица, правила проверки, триггеры, значения по умолчанию и другие свойства таблицы и ее полей, хранимые в базе данных. (В нашем примере ничего подобного таблица не имеет.) Команда MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT]открывает проектировщик базы данных, предоставляя возможность интерактивно модифицировать указанную или текущую базу данных. Параметр (см. также табл. 1.6): DatabaseName – имя или полное имя DBC-файла базы данных. Если параметр опущен, то откроется проектировщик для текущей базы данных. Если таковой не имеется, то откроется диалог Open выбора базы данных. Замечание. Выполнение команды MODIFY DATABASE активизирует событие dbc_Activate базы данных. Команда SET DATABASE TO [DatabaseName]задает текущую базу данных. Если команда выполнена без параметра DatabaseName или если DatabaseName – это строка нулевой длины, то ни одна из открытых баз данных не будет текущей. Параметр: DatabaseName – имя или полное имя DBC-файла текущей базы данных. Установка команды SET DATABASE сохраняется с текущей сессией данных. Замечания: 1. VFP может автоматически открывать базы данных, выполняя запрос или форму. 2. Базу данных можно сделать текущей, выбрав ее из раскрывающегося списка стандартной панели управления (рис. 14.4). Рис. 14.4. В качестве текущей выбрана база данных People 3. При выполнении в командном окне базу данных можно выбрать из появляющегося списка (рис. 14.5). Рис. 14.5. SET DATABASE в командном окне Команда OPEN DATABASE [FileName | ?] [EXCLUSIVE | SHARED]
|