Распечатать страницу

Виды в Microsoft Visual FoxPro

« Назад

Вид (или SQL-вид) – это средство, обеспечивающее доступ к части базы данных, комбинирующее запрос, выбирающий данные, с возможностью их обновления.

Иными словами, SQL-вид позволяет извлекать нужные поля и записи из одной или нескольких таблиц, обращаться с результатом как с таблицей, данные которой могут обновляться пользователем и пересылаться таблицам-источникам данных.

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

Интерактивно вид (локальный или удаленный) создается проектировщиком вида, открываемым после выбора в дереве базы данных ветви Local Views или Remote Views и нажатия на кнопку New вкладки Data менеджера проекта.

Создадим локальный вид. В диалоге (рис. 16.17) выберем New View.

245.1.-Создание-нового-локального-вида

Рис. 16.17. Создание нового локального вида

Добавим затем, используя появившийся диалог Add Table or View (рис. 16.18), в проектировщик вида только одну таблицу Authors базы данных HomeLibrary.

245.2.-Добавление-в-проектировщик-вида-таблицы-или-иного-вида

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

Чтобы добавить существующий вид в группе Select диалога следует активизировать переключатель Views.

Выберем в проектировщике вида (рис. 16.19) все поля таблицы Authors.

245.3.-Проектировщик-вида

Рис. 16.19. Проектировщик вида

Перейдем на вкладку Update Criteria проектировщика и приведем ее в соответствие с рис. 16.20, не забыв установить флажок Send SQL updates, обеспечивающий отправку таблице Authors произведенных в виде обновлений.

245.4.-Вкладка-Update-Criteria-проектировщика-вида

Рис. 16.20. Вкладка Update Criteria проектировщика вида

Просмотрим имеющийся в SQL-окне проектировщика код, задействовав иконку  панели инструментов проектировщика:

select Authors.AuthorId, Authors.Author, Authors.InputDate, Authors.Information ;

from HomeLibrary!Authors

DBSetProp(ThisView,"View","SendUpdates",.T.)

DBSetProp(ThisView,"View","BatchUpdateCount",1)

DBSetProp(ThisView,"View","CompareMemo",.T.)

DBSetProp(ThisView,"View","FetchAsNeeded",.F.)

DBSetProp(ThisView,"View","FetchMemo",.T.)

DBSetProp(ThisView,"View","FetchSize",100)

DBSetProp(ThisView,"View","MaxRecords",–1)

DBSetProp(ThisView,"View","Prepared",.F.)

DBSetProp(ThisView,"View","UpdateType",1)

DBSetProp(ThisView,"View","UseMemoSize",255)

DBSetProp(ThisView,"View","Tables","HomeLibrary!Authors")

DBSetProp(ThisView,"View","WhereType",3)

DBSetProp(ThisView+".AuthorId","Field","DataType","I")

DBSetProp(ThisView+".AuthorId","Field","UpdateName","HomeLibrary!Authors.AuthorId")

DBSetProp(ThisView+".AuthorId","Field","KeyField",.T.)

DBSetProp(ThisView+".AuthorId","Field","Updatable",.F.)

DBSetProp(ThisView+".Author","Field","DataType","C(50)")

DBSetProp(ThisView+".Author","Field","UpdateName","HomeLibrary!Authors.Author")

DBSetProp(ThisView+".Author","Field","KeyField",.F.)

DBSetProp(ThisView+".Author","Field","Updatable",.T.)

Закроем проектировщик вида и его SQL-окно, дав новому виду в появившемся Save-окне имя SomeLocalView (рис. 16.21).

245.5.-Локальный-вид-в-дереве-базы-данных-диспетчера-проекта

Рис. 16.21. Локальный вид в дереве базы данных диспетчера проекта

Открыв в Browse-окнах и вид SomeLocalView и таблицу Authors, убедимся, что изменения, выполняемые в полях вида, для которых свойство Updatable установлено в .T., переносятся в таблицу Authors.

Замечание. Описание свойств вида см. в табл. 14.18 и 14.20.