Программирование >>  Разработка пользовательского интерфейса 

1 ... 72 73 74 [ 75 ] 76 77 78 ... 147


[ADD FOREIGN KEY [eExpressionS] TAG TagName4

REFERENCES TableNamel [TAG TagNameS]] [DROP FOREIGN KEY TAG TagNameS [SAVE]] [RENAME COLUMN FieldName4 TO FieldNameS]

[NOVALIDATE]

Намного проще эта команда выглядит в Microsoft Access: ALTER TABLE таблица {ADD {COLUMN поле тип[(размер)] [CONSTRAINT индекс] I CONSTRAINT составной индекс} DROP {COLUMN поле I CONSTRAINT имя индекса} }

И наконец, синтаксис этой команды в MS SQL Server еще короче: ALTER TABLE [[database.]owner.]table name ADD column name datatype NULL [, column name

datatype NULL... ]

На этом мы закончили обзор команд SQL, которые присутствуют во всех трех приложениях.

Не удивляйтесь, что параграф уже закончился, а примеров все еще нет. Примеры по использованию команд sQl для изменения структуры данных вы уже видели в главе 6 при описании создания БД.

7.4. Запросы и локальные представления в Microsoft Visual FoxPro

В этом параграфе мы подробно рассмотрим визуальные и программные методы создания запросов и представлений в Visual FoxPro.

Расширения команд xBase командами SQL, которые появились, начиная с версии FoxPro 2.0, принесли, несомненно, ему очень большую пользу. Главным достоинством можно считать значительное сокращение кода для выборки данных, причем без потери скорости, так как метод оптимизации Rushmore работает и в SQL запросах. Это единственный вариант, где указанный метод может использоваться для поиска данных в нескольких таблицах. А, например, команда INSERT-SQL работает на порядок быстрее, чем классическая конструкция

APPEND BLANK

REPLACE <<поле>> WITH <<выражение>> Правда, SQL команд и было всего ничего:

SELECT-SQL

INSERT-SQL

CREATE TABLE

При этом курсоры, которые получались в результате выборки, были немодифицирующими, то есть изменения, которые вы делали в них, не отражались в таблицах, данные из которых они отражали. Тем не менее были изобретены сотни способов синхронизации изменений в курсорах, полученных с помощью команды SELECT с данными в исходных таблицах. Одни из самых простых - использование в запросе в качестве выводимых колонок функции RECNO(), которая возвращает номер записи и использование возможности SELECT-SQL создавать таблицы. У этого способа есть существенное ограничение - он работает корректно только при выборке из одной таблицы. В случае выборки из нескольких таблиц получить с помощью функции RECNO() нужный результат невозможно.

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

В Visual FoxPro добавилось несколько новых команд SQL, с помощью которых мы можем менять структуру уже существующих таблиц, удалять записи и модифицировать данные. Но самое главное, - у нас теперь есть возможность создавать представления (View), которые можно хранить в базе данных. Тем самым значительно увеличились возможности организации данных. Помимо этого представление позволяет создавать курсоры, с помощью которых мы можем менять данные в исходных таблицах. При этом мы сами можем определять, какие поля разрешить для модификации, а какие нет. Возникают определенные трудности, если в исходных таблицах нет уникальных ключевых полей, но они легко преодолимы. Можно сказать, что запросы в том виде, как они существовали в предыдущих версиях и продолжают существовать сейчас, больше не нужны. Хотя бесспорно при желании можно доказать необходимость их использования. В Visual FoxPro как синтаксис команд по созданию представлений и запросов, так и конструкторы для создания этих краеугольных камней систем управления базами данных очень похожи друг на друга. Поэтому, начиная обзор Конструктора представлений, мы одновременно изучаем и Конструктор запросов. Параллельно мы будем обсуждать как визуальный способ создания



Add Table or View

Database

Auto Store Tables in Database:

account

autonrtobiie passenger car

bodiJ

countriJ

customer

Cancel

Other...

Select

firm

fuel oil

model

mytable

sale

tiJre

(* Tables С Views

Рис. 7.1. Диалоговое окно выбора таблиц или представлений

Конструктор представления состоит из двух частей. В первой, верхней части, размещаются графические образы таблицы и представления, данные из которых вы будете использовать для создания представления. Здесь легко можно связать две таблицы или представления, просто щелкнув мышью на названии поля и, не отпуская кнопки, переместив курсор на поле в другой таблице или представлении (рис. 7.2). Это очень важный момент, потому что, как правило, все таблицы и представления должны быть связаны, иначе результаты выборки трудно прогнозировать .

представлений, так и программный.

Вызвать на экран Конструктор представлений можно несколькими способами. Если вы работаете с использованием Project Manager, а это единственно правильный путь для построения сложных приложений, то вам необходимо перевести курсор на пункт списка Local Views и нажать кнопку New. После чего на экране появится диалоговое окно, в котором вам предложат создать представление с помощью Мастера или самостоятельно. Самостоятельно - значит с помощью Конструктора представлений, что ненамого сложней. Помимо этого вы можете щелкнуть по значку New в стандартной панели инструментов, и в появившемся диалоге среди предложенных типов файлов выбрать Local View.

Перед тем как на экране появится Конструктор представлений, на экран будет выведено диалоговое окно для выбора таблиц или предварительно созданных представлений, в котором вы должны выбрать соответственно таблицу или представление, на основе данных из которого вы будете создавать новое представление. Если вам необходимо выбирать данные из нескольких таблиц или представлений, то, нажав правую кнопку мыши, находясь внутри Конструктора представлений, вы можете вызвать всплывающее меню и выбрать в нем команду Add Table, как это показано на рис. 7.1.



ar.cdijnf

daHe wrile died z}

era.

namr tustC4nc(

ti?i


&eJec№ Criteria TjbJe:

Older by Gmiby <Jpd3*eCii*ei4

Field Njrne

UpdateAl

r£wldSOLUpdJt -

nanrre cLjnlKjtKf-

SQL WHERE clause includti.

r KeyFieJdjOfily

<~ Kej and UpffalJtto Field!

Kej and kJodified Field! f wanaiictHKiamcj

Updare №ing- -

С SQL DELETE ihen IHSEFIT < SQLUPpATE

Рис. 7.2.

Нижняя часть Конструктора состоит из пяти страниц, заголовки которых называются Selection Criteria, Fields, Order By, Group By и Update Criteria (рис. 7.3). Здесь стоит отметить, что последней страницы нет в Конструкторе запросов. Это единственное, но очень принципиальное различие между запросом и представлением - представления могут изменять исходные таблицы при изменении данных в них.

Vtn( [КЫЦ)п cr Di:t:nunI lDi:itl vjji#.

luiV ctitt iHr

lJ L

SekdiDitQJiHia


Рис. 7.3.

На странице Selection Criteria записываются связи между таблицами и накладываются фильтры на выбираемые данные. Здесь мы фактически записываем условия предложения WHERE. Если вы еще слабо знакомы с синтаксисом SQL, то есть возможность изучать его в интерактивном режиме. В любой момент вы можете либо с помощью вызова всплывающего меню, или с помощью меню Query, или с помощью панели инструментов View Designer просмотреть SQL запрос в текстовом виде. При этом вы увидите, что как и в случае с запросами, так и с представлениями, выражение начинается с ключевого слова SELECT (рис. 7.4). Но пусть вас это не смущает, команда, создающая представления программным путем, начинается все-таки с ключевого слова CREATE SQL VIEW. Но об этом разговор чуть ниже.



1 ... 72 73 74 [ 75 ] 76 77 78 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика