Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 16 страница



ThisForm.Label4.Visible =.F.

ThisForm.Label5. Visible =.7.

ThisForm.Label6. Visible =.F.

ThisForm.Label7.Visible =.F.

ThisForm.Label8.Visible =.F.

ThisForm.Label9. Visible = -F.

ThisForm.Label10.Visible =.F.

ThisForm.Labell1.Visible = -F.

ThisForm.Labell.Caption = 'Ключ' ThisForm.Labe12.Caption = 'Имя'

ThisForm.Textl. Visible =.T.

ThisForm.Text2.Visible =.T.

ThisForm.Text3.Visible =.F.

ThisForm.Text4.Visible =.F.

ThisForm. Text 5. Visible =.F.

ThisForm.Text6.Visible =.F.

ThisForm.Text7.Visible =.F.

ThisForm.Text8.Visible =.F.

ThisForm. Text 9.Visible =.F.

' ThisForm.TextlO.Visible =.F.

ThisForm.Textll. Visible =.F.

в. Кнопка «Отчество»

CLOSE INDEX SELECT Ot

SET INDEX TO Ot.cdx ORDER TAG Name Ogl = 3

ThisForm.Gridl.Columnl.Visible =.F. ThisForm.Gridl.Column2.Visible =.F. ThisForm.Gridl.Column3.Visible =.F. ThisForm.Gridl.Column4.Visible =.F. ThisForm.Gridl.Column5.Visible =.F. ThisForm.Gridl.Column6.Visible =.F. ThisForm.Gridl.Column?.Visible =.T. ThisForm.Gridl.Column8.Visible =.F. ThisForm.Gridl.Column9.Visible =.F.

ThisForm.Labell.Visible =.T.

ThisForm.Label2.Visible =.T.

ThisForm.Label3.Visible = -F.

ThisForm.Label4.Visible =.F.

ThisForm.Label5.Visible =.F.

ThisForm.Label6.Visible =.F.

ThisForm.Label7.Visible =.F.

ThisForm.Label8.Visible =.F.

ThisForm.Label9.Visible =.F.

ThisForm.LabellO.Visible =.F.

ThisForm.Labelll.Visible =.F.

ThisForm.Labell.Caption = 'Ключ' ThisForm.Label2.Caption = 'Отчество'

ThisForm.Textl.Visible =.T.

ThisForm.Text2.Visible =.T.

ThisForm.Text3.Visible =.F.

ThisForm.Text4.Visible =.F.

ThisForm.Text5.Visible =.F.

•ThisForm. Text6.Visible =.F.

ThisForm.Text7.Visible =.F.

ThisForm.Text8.Visible =.F.

ThisForm.Text9.Visible = -F.

ThisForm.Text10.Visible = -F.

ThisForm.Textll.Visible =.F.

г. Кнопка «Город -

SELECT Town Ogl = 4

ThisForm.Gridl.Colunnl.Visible =.F. ThisForm.Gridl.Column2-Visible =.F. ThisForm.Gridl.Column3.Visible =.F. ThisForm.Gridl.Columr.4. Visible = ThisForm.Gridl.Columns.Visible =.F. ThisForm.Gridl.Column6.Visible =.F. ThisForm.Gridl.Column7.Visible =.F. ThisForm.Gridl.Column8.Visible =.T. ThisForm.Gridl.Column9.Visible *.F.

ThisForm.Labell.Visible =.T.

ThisForm.Label2.Visible =.T.

ThisForm.Label3.Visible =.F.

ThisForm.Label4.Visible =.F.

ThisForm.LabelS.Visible =.F.

ThisForm.Label6.Visible =.F.

ThisForm.Label7.Visible =.F.

ThisForm.Label8.Visible = -F.

ThisForm.Label9.Visible = -F.

ThisForm.LabellO.Visible =.F.

ThisForm.Labelll.Visible =.F.

ThisForm.Labell.Caption = 'Клоч'

ThisForm.Label2.Caption = 'Город'

ThisForm.Text1.Visible =.T.

ThisForm. Text2.Visible =.T.

ThisForm.Text3.Visible =.F.

ThisForm.Text4.Visible =.F.

ThisForm.Text5.Visible =.F.

ThisForm.Text6.Visible =.F.

ThisForm.Text7.Visible =.F.

ThisForm.Text8.Visible =.F.

ThisForm.Text9.Visible =.F.

ThisForm.TextlO.Visible =.F.

ThisForm.Textll.Visible =.F.

_screen.ActiveForm.Refresh()

д. Кнопка «Улица*

SELECT Street Ogl = 5

ThisForm.Gridl-Columnl.Visible =.F. ThisForm.Gridl.Column2.Visible =.F. ThisForm.Gridl.Column3.Visible =.F. ThisForm.Gridl.Column4.Visible =.F. ThisForm.Gridl.Со1шт5.Visible =.F. ThisForm.Gridl.Column6.Visible =.F. ThisForm.Gridl.Column7.Visible =.F. ThisForm.Gridl.Column8.Visible =.F. ThisForm..Gridl.Column9.Visible = -T. ThisForm.Labell.Visible =.T.

ThisForm.Label2.Visible =.T.

ThisForm.Label3.Visible =.F.

ThisForm.Label4.Visible =.F.

ThisForm.Labe15.Visible =.F.

ThisForm.Label6.Visible =.F.


ThisForm.Label7.Visible =.F.

ThisForm.Label8.Visible =.F.

ThisForm.Label9.Visible =.F.

ThisForm.LabellO.Visible =.F.

ThisForm.Labelll.Visible =.F.

ThisForm.Labell.Caption = 'Ключ' ThisForm.Label2.Caption = 'Улица'

ThisForm.Text1.Visible =.T.

ThisForm.Text2.Visible =.T.

ThisForm.Text3.Visible =.F.

ThisForm.Text4.Visible =.F.

ThisForm.Text5.Visible =.F.

ThisForm.Text6.Visible =.F.

ThisForm.Text7.Visible =.F.

ThisForm.Text8.Visible =.F.

ThisForm.Text9.Visible = -F.

ThisForm. TextlO. Visible =.F.

ThisForm.Textll.Visible =.F.

_screen.ActiveForm.Refresh()

e. Кнопка «Клиент»

SELECT Customer Ogl = 6

SET INDEX TO Customer, cdx ORDER TAG Cust ThisForm.Gridl.Visible =.T.



ThisForm.Grid2.Visible =.F.

ThisForm.Grid3.Visible =.F.

ThisForm.Gridl.Columnl. Visible =.T.

ThisForm.Gridl.Column2.Visible =.T. ThisForm.Gridl.Column3.Visible =.T.

ThisForm.Gridl.Column4.Visible =.T.

ThisForm.Gridl.Columns.Visible =.T.


ThisForm.Gridl.Column6.Visible =.T. ThisForm.Gridl.Column7.Visible =.T. ThisForm.Gridl.Columns-Visible =.T. ThisForm.Gridl.Column9.Visible =.T. ThisForm. Label l.i'isible =.T.

ThisForm.Label2.Visible =.T.

ThisForm.Label3.Visible =.T.

ThisForm.Label4.Visible =.T.

ThisForm.Label5.Visible =.T.

ThisForm.Label6.Visible =.T.

ThisForm.Label7.Visible =.T.

ThisForm.Label8.visible =.T.

ThisForm.Label9.visible =.T.

ThisForm.LabellO.Visible =.T.

ThisForm.labelll.Visible =.T.

ThisForm.Text 1.Visible =.T.

ThisForm.Text2.Visible =.T.

ThisForm.Text3.Visible =.T.

ThisForm.Text4.Visible =.T.

ThisForm.Text5.Visible =.T.

ThisForm.Text6.Visible =.T.

ThisForm.Text7.Visible =.T.

ThisForm.Text8.Visible =.T.

ThisForm.Text9.Visible =.T.

ThisForm.TextlO.Visible =.T.

ThisForm.Textll.Visible =.T.

ThisForm.Labe11.Caption = 'Ключ'

ThisForm.Label2.Caption = 'Фирма'

_screen.Act iveForm.Refresh()


Обработчик нажатия кнопки «Первая»

* Переход на первую запись IF!BOF()

GO TOP

DO CASE Case Ogl =1

ThisForm.Text1.Value = Fam.Key_fam

ThisForm.Text2.Value = Fam.Kame_fam

SET MESSAGE TO 'Нажата кнопка с номером 1' Case Ogl = 2

ThisForm.Textl.Value = Im.Xey_im

ThisForm.Text2.Value = Im.Name_im

SET MESSAGE TO 'Нажата кнопка с номером 2' Case Ogl = 3

ThisForm.Texcl.Value = 0~.Xey_ot

ThisForm.Texc2.Value - Ot.Name_ot

SET MESSAGE TO 'Нажата кнопка с номером 3' OTHERWISE

SET MESSAGE TO 'Нажата кнопка с номером 'более 3'

ENDCASE

ENDIF

..screen. Act iveForm. Refresh ()

Обработчик нажатия кнопки «Следующая*

* Переход к следующей записи I? 1E0F()

SKIP

DO CASE Case Ogl =1

ThisForm.Textl.Value = Fam.Key_fam ThisForm.Text2.Value = Fam.Name_fam SET MESSAGE TO 'Нажата кнопка с номером 1'

Case Ogl = 2

ThisForm.Text1.Value = Im.Key_im

ThisForm.Text2-Value = Im.Name_im

SET MESSAGE TO 'Нажата кнопка с номером 2'

■ Case Ogl = 3

ThisForm.Text1.Value = Ot.Key_ot

ThisForm.Text2.Value = Ot.Name_ot

SET MESSAGE TO 'Нажата кнопка с номером 3' OTHERWISE

SET MESSAGE TO 'Нажата кнопка с номером '+; 'более 3'

ENDCASE

ENDIF

_screen.Act iveForm.Re fresh()

Обработчик нажатия кнопки «Предыдущая*

* Переход к предыдудей записи IF!B0F()

SKIP - 1 DO CASE Case Ogl =1

ThisForm.Text1.Value = Fam.Key_£am

ThisForm.Text2.Value = Fam Name_fam

SET MESSAGE TO 'Нажата кнопка с номером 1' Case Ogl = 2

ThisForm.Textl.Value = Im.Key_im

ThisForm.Text2.Value = Im.Name_im

SET MESSAGE TO 'Нажата кнопка с номером 2' Case Ogl = 3

ThisForm.Textl.Value = Ot.Key_ot

ThisForm.Text2.Value = Ot.Name.ot

SET MESSAGE TO 'Нажата кнопка с номером 3'

OTHERWISE

SET MESSAGE ТО 'Нажата кнопка с номером '+; 'более 3'

ENDCASE

ENDIF

screen.ActiveForm.Refresh()

Обработчик нажатия кнопки «Последняя>

* Переход к последней записи

IF LB0FO GOTO BOTTOM DO CASE Case Ogl =1

ThisForm.Textl.Value = Fam.Key_fam

ThisForm.Text2. Value -*= Fair..hame_fam SET MESSAGE TO 'Нажата кнопка с номером 1' Case Ogl = 2

Thi sForm.Text1.Value = Im.Key_im

ThisForm.Text2.Value = Im.Name_im

SET MESSAGE TO 'Нажата кнопка с номером 2' Case Ogl = 3

ThisForm.Textl.Value = Ot.Key_ot

ThisForm.Text2.Value = Ot.Name_ot

SET MESSAGE TO 'Нажата кнопка с номером 3' OTHERWISE

SET MESSAGE TO 'Нажата кнопка с номером '+; 'более 3'

ENDCASE

ENDIF

—screen.Act iveForm.Refresh()

Обработчик нажатия кнопки «Поиск*

ThisForm.Gridl.Visible =.F.

ThisForm.Grid2.Visible =.F.

ThisForm.Grid3.Visible =.F.

ThisForm.Labell2.Visible =.T.

ThisForm.Textl2.Visible =.T.

ThisForm.Labell2.Caption = 'Условие поиска'

DO CASE Case Ogl =1

nn = ThisForm.Text12.Value

LOCATE FOR Fam.Name_fam = ALLTRIM(nn)

IF FOUND() THEN

ThisForm.Textl.Value = Fam.Key_fam ThisForm.Text2.Value = Fam.Name_£am ELSE

IF MESSAGEBOX('Фамилия не найдена',;

6 + 32 + 256, 'Выход') = б THEN

ENDIF

ENDIF

SET MESSAGE TO 'Нажата кнопка с номером 1' Case Ogl = 2

nn = ThisForm.Textl2.Value

LOCATE FOR Im.Name_im = ALLTRIM(nn)

IF FOUND0 THEN

ThisForm.Textl.Value = Im.Key_im

ThisForm.Text2.Value = Im.Name_im

ELSE

IF MESSAGEBOX{'Имя не найдено',;

6 + 32 + 256, 'Выход') = 6 THEN

ENDIF

ENDIF

SET MESSAGE TO 'Нажата кнопка с номером 2'

Case Ogl =3

nn = ThisForm.Text12.Value

LOCATE FOR Ot.Name_ot = ALLTRIM(nn)

IF FOUND{) THEN

ThisForm.Textl.Value = Ot.Key_ot ThisForm.Text2.Value = Ot.Name_ot ELSE

IF MESSAGEBOX('Отчестве не найдено*.; 6+32+256. 'Выход') = 6 THEN ENDIF ENDIF

SET MESSAGE TO 'Нажата кнопка с номером 3' OTHERWISE

SET MESSAGE TO 'Нажата кнопка с номером 'более 3'

ENDCASE

Обработчик нажатия кнопки «Фильтр»

ThisForm.Gridl.Visible =.F.

ThisForm.Grid2.Visible =.F.

ThisForm.Grid3.Visible =.F.

ThisForm.Labell2.Visible =.T.

ThisForm.Textl2.Visible =.T.

ThisForm.Labell2.Caption = 'Условие фильтра'

CLEAR DO CASE Case Ogl =1 1=0

nn = ThisForm.Textl2.Value 1 = LEN(ALLTRIM(nn))

k = RAT(';', ALLTRIM(nn))

ml = SUBSTR(nn, 1, 1-2)

m2 = SUBSTR(nn, 1)

IF 1 >0 THEN

ACTIVATE WINDOW Filer SHOW WINDOW Filtr BROWSE IN WINDOW Filtr;

FOR Name_fam > ml.AND. Name_fam < m2; FIELDS Key_fam:H = «Ключ», Name_fam:h =«Имя»; FONT «Times New Roman», 12 STYLE «В1»

ENDIF

ThisForm.Textl2.Value = '' && пустая строка SET MESSAGE TO 'Нажата кнопка с номером 1'

Case Ogl = 2 1=0

nn = ThisForm.Text12.Value 1 = LEN(ALLTRIM(nn))

k = RAT(*;', ALLTRIM(nn)) ml = SUBSTR(nn, 1, 1-2) m2 = SUBSTR(nn, 1)

IF 1 >0 THEN ACTIVATE WINDOW Filtr SHOW WINDOW Filtr

BROWSE IN WINDOW Filtr FOR Name_im > ml.AND.; Name_im < m2;

FIELDS Key_im:H = 'Ключ', Name_im:h =‘Имя'; FONT 'Times New Roman', 12 STYLE 'BI'

ENDIF

ThisForm.Text12.Value = " && пустая строка

SET MESSAGE TO 'Нажата кнопка с номером 2'

Case Ogl = 3 1=0

nn = ThisForm.Textl2.Value 1 = LEN(ALLTRIM(nn))

k = RAT(';', ALLTRIM(nn))

ml = SUBSTR(nn, 1, 1-2)

m2 = SUBSTR(nn, 1)

IF 1 >0 THEM ACTIVATE WINDOW Filtr SHOW WINDOW Filtr

BROWSE IN WINDCW Filtr FOR Name_ot > ir.l.AND.; Name_ot < m2;

FIELDS Key_ot:H = 'Ключ', Name_ot;h ='Имя'; FONT 'Times New Roman', 12 STYLE 'BI'

ENDIF

ThisForm.Textl2.Value = " && пустая строка

SET MESSAGE TO 'Нажата кнопка с номером 3' OTHERWISE

SET MESSAGE TO 'Нажата кнопка с номером ' +; 'более 3'

ENDCASE

Обработчик нажатия кнопки «Добавить*

DO CASE

Case Ogl = 1

nn = ThisForm.Text2.Value

LOCATE FOR Fam.Name_£am = ALLTRIM (nn)

IF FOUND() THEN

IF MESSAGEBOX('Дубликат фамилии ' + nn,;

6 + 32 + 256,'Выход') = 6 THEN ENDIF ELSE

SET ORDER TO TAG Fam OF Fam.cdx GOTO BOTTOM n = Fam.Key_£am + 1

APPEND BLANK

REPLACE Fam.Key_fam WITH n,;

Fam.Name_fam WITH ThisForm.Text2.Value ENDIF

Case Ogl = 2

nn = ThisForm.Text2.Value

LOCATE FOR Im.Name_im = ALLTRIM(nn)

IF FOUND() THEN IF MESSAGEBOX('Дубликат имени ' + nn,;

6 + 32 + 256,'Выход') = 6 THEN ENDIF ELSE

SET ORDER TO TAG Im OF Im.cdx GOTO BOTTOM n = Im.Key_im + 1

APPEND BLANK

REPLACE Im.Key_im KITH n, Im.Name_im; WITH ThisForm.Text2.Value

ENDIF Case Ogl = 3

nn = ThisForm.Text2.Value

LOCATE FOR Ot.Nair.e_ot = ALLTRIM (nn)

IF FOUND() THEN IF MESSAGEBOX('Дубликат отчества ' + nn,; 6 + 32 + 256.«Выход») = 6 THEN

ENDIF

ELSE

SET ORDER TO TAG Ot OF Ot.cdx GOTO BOTTOM n = Ot.Key_ot + 1

APPEND BLANK

REPLACE Ot.Key_ot WITH n, Ot.Name_ot; WITH ThisForm.Text2.Value

ENDIF

ENDCASE


Обработчик нажатия кнопки «Выход*

* выход из формы с подтверждением

1? MESSAGEBOX('Выдти из формы?',4-32-256,'Зыход'} = б _screen.Act iveForm.Release()

ELSE

_screen.Act iveFom. Refresh ()

ENJIF

Поиск настроен на неточное совпадение, то сеть вводятся не­сколько первых символов искомого значения. На экран выво­дится первое найденное значение. Так как поиск производится по индексному полю, то значения содержащие первые одинако­вые символы размещаются друг за другом (рис. 10.4).

При фильтрации в условии фильтра сначала указывается ниж­няя граница (строго меньше), затем разделитель (символ «> — точка с запятой) и далее верхняя граница (строго меньше). Пробе-


Условие пенсия


I----------- *

[top


Добавить |


Пои с г

iV iT I 1 п.


J


Смпьтр


ы Первая j Следующая [ Предыдущая | Последняя } Выход Рис. 10.4. Поиск в таблице «Фамилия».


 


 

 

£л»«| Имл

 

II

Щу Валентина

 

 

4 Валерий

 

 

t Виктор

 

И Владимир

—.

 

ИМЯ

rU.tnilfl £ ИМЯ

; Г

/'Гсздд ~ Уякцз Г Клиент

floBatxtt

i

Уучи.кчЬхпьтза

Поиск

|w J

Фильтр

J


Персая | Слгдющэя | Пргдыдацая | f П«-адндя | 8ыюд' | Рис. 10.5. Фильтрация таблицы «Имя».

лы внутри условия фильтра запрещены. Результат фильтрации приведен на рис. 10.5.

При добавлении значений в родительскую таблицу («Фа­милия», «Имя» и «Отчество») поле ключа не заполняется. Уникальное значение первичного ключа присваивается автома­тически.

10.5. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Для каких целей используют элементы управления?

2. Что такое класс?

3. Что такое объект?

4. Назовите ключевые слова для доступа к объектам.

5. Что из себя представляет экранная форма и для каких целей она используется?

6. Назовите два способа создания экранной формы.

7. Укажите назначение и основные принципы работы с Мастером форм.

8. Укажите назначение и основные принципы работы с Конструкто­ром форм.

9. Укажите назначение режима проектирования в Конструкторе форм.

10. Как установить режим проектирования в Конструкторе форм?

11. Укажите назначение рабочего режима в Конструкторе форм.

12. Как перейти в рабочий режим в Конструкторе форм?

13. Укажите назначение панели инструментов Form Controls в Конст­рукторе форм.

14. Укажите назначение панели инструментов Fomi Designer и Конст­рукторе форм.

15. Укажите назначение панели инструментов Layout в Конструкторе форм

16. Укажите назначение панели инструментов Color Palette в Конст­рукторе форм.

17. Какие действия надо выполнить для размещения компонента на форме?

18. Как сделать компонент активным (пассивным)?

19. Укажите назначение окна Properties. Для какого компонента пред­назначено окно Properties?

20. Объясните назначение вкладок окна Properties: All. Data, Methods, Layout и Other.

21. Назовите два способа задания свойств и методов компонента.

22. Как удалить компонент с формы?

23. Как установить на форме вспомогательную сетку?

24. Что такое фокус управления?

25. Как изменить порядок обхода элементов управления (компо­нент)?

26. Укажите основные свойства и методы компонента «Форма».

27. Укажите основные свойства и методы компонента «Label».

28. Укажите основные свойства и методы компонента «TextBox*.

29. Укажите основные свойства и методы компонента «EditBox*.

38 Укажите основные свойства и методы компонента

«Command Button».

Укажите основные свойства и методы компонента

«CommandG roup*.

* Укажите основные свойства и методы компонента «Option Group».

. Укажите основные свойства и методы компонента «CheckBox».

и» Ui и* и* ы и> ы

«90 9\ 'Л ^ Ы

. Укажите основные свойства и методы компонента ListBox».

. Укажите основные свойства и методы компонента «ComboВох».. Укажите основные свойства и методы компонента «Spinner».

. Укажите основные свойства и методы компонента «Line*.

. Укажите основные свойства и метопы компонента «Shape».

. Укажите основные свойства и методы компонента «Image».

40. Укажите основные свойства и методы компонента «General*.


Глава 11

ОСНОВЫ ЯЗЫКА ЗАПРОСОВ SQL

Структурированный язык запросов SQL является универсаль­ным средством управления базами данных. Этот язык предус­мотрен практически во всех системах управления базами данных. С помощью языка SQL можно как создавать новые объекты, так и управлять существующими объектами. Рассмотрим основные команды языка SQL.

11.1. СОЗДАНИЕ ТАБЛИЧНОГО ФАЙЛА

CREATE TABLE | DBF <имятаблицы>

(NAME <длинное имя таблицы> 1 FREE J

(<имя поля 1> <тнп поля 1> [<шириня поля 1> [, <т©чность> ] 1) (NULL | NOT NULL]

I CHECK <выр.1> [ ERROR «сообщение> ] ]

[ DEFAULT <выр.> ]

(PRIMARY KEY [<выр.> TAG <имятега>] |

UNIQLE [<выр.> TAG <нмятега>]]

(FOREIGN KEY <выр>ТАС <имятега>

[REFERENCES <нмя таблнды> I TAG <нмя тега 1> ] ] t NOCPTRANS ]

1(<имяполя2>...)]

I FROM ARRAY <нмямассива>

Команда создает таблицу либо описанием всех полей, либо на основе массива. Таблица создается и открывается в иск­лючительном режиме в самой младшей доступной рабочей обла- задании меню таблицы опции TABLE и DBF идеи-

 

NAME <длинное имя табляцы> — задаст длинное имя таблицы до 128 символов. Длинное имя используется для таблиц, которые являются частью базы данных

TREE — опция указывает на то что создаваемая таблица не яв­ляется частью открытой в данный момент базы данных. Если при создании таблицы ист открытых баз данных, то опцию указывать не обязательно.

(<имя поля 1> <тип поля 1> [<ширина поля 1> [, <точность> ] ]) —

параметры, которые используются для описания каждого поля. Первые два параметра обязательны для полей.любых типов.1 <ширина поля > используется для символьных и числовых по­лей. <точность> используется для числовых полей с плавающей точкой или двойной точности. Тип поля может быть задан одним символом

С —символьный D —тип даты Т —тип дата- N —числовой

время

Y — денежный L — логический М — тип Memo G — обшее поле

F — с плавающей В — поля двойной Р — поля рисунков

точкой точности

NULL | NOT NULL — разрешает или запрещает пустое (нуле­вое) значение поля.

CHECK <выр.1> — задает условие достоверности вводимого значения поля. В опции ERROR можно зачать собственное со­общение об ошибке.

DEFAULT <выр.> — задает значение поля по умолчанию. PRIMARY KEY [ <выр.> TAG <имя тега> ] — создает первич­ный ключ. Первичный ключ создастся по полю, которое указано перед этой опцией. Если добавлено <выр.>, то первичный ключ создается в соответствии с указанным выражением. Если добав­лено TAG <имя тсга>, то первичный ключ создается на основе указанного индекса. Каждая таблица может иметь только один первичный ключ.

UNIQUE [<выр.> TAG <имя тега> ] — создает альтернативный ключ. Правила создания альтернативного ключа анало! ичнЫ правилам создания первичного ключа.

FOREIGN KEY <выр.> TAG <имя тега> — создаст внешний ключ для связи с родительской таблицей.

REFERENCES <имя таблицы> [ TAG <имя тега 1> ] — задает имя родительской таблицы, а при необходимости и имя индекса в ро­дительской таблице. Если опция TAG опущена, то связь уста­навливается с первичным ключом родительской таблицы. NOCPTRANS — запрещает использование символьных полей и полей типа Memo в различных кодовых страницах.

Указанные опции могут быть повторены для любот поля таб­лицы.

FROM ARRAY <нмя массива> — позволяет создать таблицу на основе массива, а не описывать каждое поле.

11.2. ДОБАВЛЕНИЕ ЗАПИСЕЙ В ТАБЛИЦУ

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

а. Добавление записей с клавиатуры.

INSERT INTO <имятаблнцы>

[ ([<нчя пазя 1> [, <нмя паля 2>... ]))

VALUES (<выр.1> [, <выр.2> [,... ]))

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

Если при добавлении новой записи в таблицу значения зано­сятся во все поля и значения располагаются строго по порядку описания полей, то в формате команды допускается не указывать имена полей:

INSERT INTO <имя таблнкы>

values (<выр.1> [, <выр.2> [,... ] ])

б. Добавление записей из массива.

INSERT INTO <имятаблнцы> FROM ARRAY <нмямассива>

«• Добавление записей из переменных памяти.

INSERT into <имятаблицы> FROM MEMVAR

В любом из трех случаев программист должен следить за со- °тветствием типов вводимых данных типам полей таблицы.


11.3. РЕДАКТИРОВАНИЕ ЗАПИСЕЙ ТАБЛИЦЫ

Любую запись (или группу записей) в таблице можно отредакти­ровать. Для этого предназначена команда:

UPDATE <нчя таблицы>;

SET <имя поля 1> = <значение 1> [, <ммя поля 2> ™

<значенис 2>... ];

WHERE <нмя поля ионска> = <)словие нонска>

Если опция WHERE опущена, то замена значения будет про­изведена во всем столбце.

11.4. ВЫБОР ДАННЫХ ИЗ ТАБЛИЦЫ

Команда SELECT позволяет производить выборку данных как из одной таблицы, так и из нескольких взаимосвязанных таблиц, и помещать результат выборки либо в новую таблицу, либо в дру­гой приемник данных. Отобранные данные могут быть сгруппи­рованы и отсортированы.

SELECT [ALL | DISTINCT) [<псендоиим 1>] Спуикгвыбора>[, <пеевдоннм>,) <пункт выбора>...)

FROM <имя таплипы> [<псевдоним 2> J [, <имя таблнцы> [<псевлояим 3>]... ]

[[ INTO ARRAY <ичя массика> | INTO CURSOR <имя> |

INTO TABLE | DBF <имя тайлицы>

| [ТО FILE <нмяфайла> [ADDITIVE] | ТО PRINTER]]

(NOCONSOLE]

[ PLAIN ]

[NOWAIT]

[WHERE <условнесоединення> [AND <условиесоединсния>...] [ AND | OR <условие фильтра> [ AND | OR <условне фильтра>... [ [ GROUP BY <колонка гругшы> [, <каюнка группы>... ] ]

[ HAVING <условие фильтра> ]

[UNION [ALL] <комаиаа SELECI>]

[ ORDER BY <пункт порядка> [ ASC | DESC ]

[, <пункт порядка> [ ASC | DESC ]... ] ]

Назначение опций:

ALL — отображает все поля одной иди нескольких таблиц. Оп­ция но умолчанию.

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

FROM — перечисляются имена таблиц или псевдонимы рабо­чих областей, из которых выбираются поля.

IMO ARRAY — результат выборки направляется в масеив. ГМО CURSOR — результат выборки направляется во времен­ную таблицу.

INTO TABLE | DBF — результат выборки направляется в посто­янную таблицу.

ТО FILE результат выборки направляется в текстовый файл. Ес­ли добавлена опция ADDITIVE, то выбранные данные добавля­ются в конец существующего файла.

ТО PRINTER — результат выборки направляется на принтер.

Ест опции INTO и ТО отсутствуют, то результат выборки направляется на экран.

NOCONSOLE — запрет вывода на экран.

PLAIN — запрет вывода заголовков колонок.

NOWAIT — устраняет паузу при заполнении экрана. Результат выборки будет выводиться непрерывно до конца выборки.

WHERE — задает условия поиска данных в нескольких табли­цах. Каждое <условие соединения> сравнивает поле одной таб­лицы с полем другой таблицы. Каждое <условие фильтра> срав­нивает два поля или одно поле с переменной или константой. GROUP BY — позволяет группировать записи в порядке возра­стания значений одного или нескольких полей.

HAVING — включает в запрос столько групп, сколько задано ус­ловий.

ORDER BY — позволяет сортировать результат выборки (запро­са) по возрастанию (ASC) или по убыванию (DESC) одного или нескольких полей.

VNlON — позволяет комбинировать результат текущего запро- Са (выборки) с результатами другого запроса SELECT. Если не Указана опция ALL, то повторяющиеся записи исключаются.

Для задания экранного имени столбца (поля) допускается nq пользование опции AS после имени поля.

11.5. ПРИМЕРЫ

Пример 1. Вывести в окно Query значения трех полей всех за писсй таблицы Catalog.

CLOSE ALL

SET DEFAULT TO E:\Prim_bd

USE Catalog IN 2 INDEX Catalog ALIAS Cat;

ORDER TAG Name SET TALK OFF CLEAR SSLE Cat

SELECT Name_book, Year, Price FROM Catalog

Пример 2. Вывести в окно Query значения полей из разнь таблиц.

CLOSE ALL

SET DEFAULT TO E:\Prim_bd USE Catalog IN 2 ALIAS Cat

USE Fam IN 5 ALIAS Fam

USE Im IN 7 ALIAS Im

USE Ot IN 10 ALIAS Ot

SET TALK OFF CLEAR SSLE Cat

SELECT F.Name_fam, I.Name_im, O.Name_ot, C.Name_book, C.Year. C.Price;

FROM Catalog C, Fam F, Im I, Ot O;

WHERE C.Key_fam=F.Key_fam AND;

C.Key_im=I. Key_im AND C.Key_ot=O.Key_ot

Результат работы примера приведен на рис. 11.1.


4)3

«7



наше а* Наш* Ы «та book у

[ТТааап Г псэккк урглыикок».


ОМ

1Й»Т O Wl


1S«J 57 00)

ш


,р«шж _ 1м««сандр Cepiwim |Гриа _______________________________

Т^.ц "_____ 'Тмоисей^ [смлтмж T*m*^4ii*^aap*_tiir3»«. эактрк-

|гйаль”_ Николай _ ^В*силы»*1 В*чара на жор» fry; Дтикки

“ircrant 'Николай 0«сигъм*к_____ j-'t а» гам _________________________________

ГЙолЕ ~ Накопай Цйс«ч.км-) ^'»оср_ и»п»«* *г_и

iponiM0_ Нгадникр:Галактоноакм |1сигиир»с:»цн.

Аксакса


19S3 089


200157 00 19Ч] 075"


оголк накопай____ IBacnr«aaa-i ^ккоор Мартам**г_и ________ 9)к 100___________

Ьтмо_______ Вгадникр_____ [Гтакпкоиоаии^ Пскагткирасзааан. 1105-Г Гсо_______

Гсмск 'С»рк«й_ Тикаофемкн _Т<рСскчда* 19»;| 115

йамрнко ГТарас_______:Григсэьмж |д>0рачное _______________________________ i1*"] —I

Iimiw ■ iwitijjita i.y - s-?-r yWfck1 xtk


Тр,ш««__рпяикда jC»pmiw _ иэеоим»_______

Р«Ш1И4 и*Л«««ИДР ClIMUW EM(mJC4MK4

"р^ийж клкк >кдр ’с*рк*«ккч ГЫрик»


е]


196С! 905


Нагм.ЮТ


CLEAR SELE Cat

SELECT F.Name_fan AS 'Фамилия', I.Nane_im AS 'Имя'; O.Name_ot AS 'Отчество',;

С.Name_book AS ' Наззание_книги',;

С.Year AS 'Год', С.Price AS 'Цена';

FROM Catalog C. Fam F. Im I. Ot O;

WHERE С. Key_fam=F.Key_fam AND;

C.Key_im=I. Key_im AND C.Key_ot=O.Key_ot

Обратите внимание на то, что в экранных именах столбцов за- Прещено использовать символ пробел. Символ пробел в опции AS Л1я поля Name book заменен на символ «_ * (подчеркивание).


CLOSE ALL

SET DEFAULT ТО E:\Prirr._bd

USE

Catalog

IN 2

ALIAS

Cat

USE

Fam

IN 5

ALIAS

Fam

USE

Im

IN 7

ALIAS

In

USE

Ot

IN 10

ALIAS

Ot

SET

TALK

OFF

 

 


Пример 3. Вывести в окно Query значения полей из разных таблиц. Экранные имена столбцов задать буквами русского алфавита.


Рис. 11.1. Результат работы примера 2


L


 


Дата добавления: 2015-09-29; просмотров: 20 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.098 сек.)







<== предыдущая лекция | следующая лекция ==>