лучшие книги по экономике
Главная страница

Главная

Замовити роботу

Последние поступления

Форум

Создай свою тему

Карта сайта

Обратная связь

Статьи партнёров


Замовити роботу
Книги по
алфавиту

Б
В
Г
Д
Е
Ж
З
И
К
Л
М
Н
О

Інформатика та комп’ютерна техніка

Страницы [ 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 ]

Після введення команди Set Filter усі наступні команди будуть діяти лише на ті записи, для яких задовольняється умова.
Наприклад, встановити фільтр для обробки записів лише за січень та березень:
SET FILTER TO місяць="січень" OR місяць="березень"
LIST
BROWSE
Для відміни дії фільтра застосовується команда у такому вигляді: SET FILTER TO
Для пошуку даних використовуються команди LOCATE та SEEK, які встановлюють покажчик поточного запису на знайдений запис і, таким чином, роблять його доступним.
Команда LOCATE має такий формат:
LOCATE <діапазон> FOR <вираз>
Параметр <діапазон> за замовчанням дорівнює ALL. Команда LOCATE послідовно переглядає активну таблицю, починаючи від поточного запису, доки не знайде перший запис, для якого <вираз> вірний. Якщо файл індексований, VFP використовує технологію Rushmore для прискорення пошуку. Якщо потрібний запис знайдено, функція FOUND() приймає значення .Т. (вірно). Для продовження пошуку використовується команда CONTINUE.

Приклад 1. Вивести записи, котрі були реалізовані 05/10/01. Команди та результат їх виконання — на рис. 10.21.

Рис. 10.21. Команда пошуку LOCATE
Команда LOCATE частіше застосовується у програмному режимі з використанням операторів циклу.
Команда SEEK виконує пошук в індексованому файлі і має такий формат: SEEK <вираз>, де вираз може бути значенням індексу або виразом у вигляді ключа індексування. Якщо значенням індексу є рядок символів, його довжина повинна бути саме такою, як довжина поля у структурі таблиці. Наприклад, якщо поле ПРІЗВИЩЕ у структурі займає 15 символів, тоді пошук запису з прізвищем Петренко Н.А. повинен виконуватись такою командою: SEEK "Петренко Н.А.". Команда SEEK встановлює покажчик поточного запису на перший запис, що задовольняє критерію пошуку. Якщо потрібний запис знайдено, функція FOUND() приймає значення .Т. (вірно).

Приклад 1. Визначити ціну товару «А122», реалізованого 05/10/01.

Приклад 2. Визначити код товару, який реалізовано у кількості 400.
Команди та результат виконання дивіться на рис. 10.22.

Рис. 10.22. Приклади роботи команди SEEK

10.2.8. Робота з кількома таблицями одночасно.
Встановлення відношень поміж таблицями

СУБД VFP дозволяє одночасно працювати з декількома файлами. У цьому випадку кожний файл відкривається в окремій області. За замовчанням файл відкривається у поточній області, спочатку роботи — у першій. Поточна область задається за допомогою команди SELECT <номер області>. Активним є той файл, чия область була позначена останньою командою SELECT. Файли, що відкриті в інших областях — це пасивні файли. Для звертання до полів пасивного файла перед їх іменем треба задавати ім’я файла та відокремлювати його від імені поля крапкою (наприклад: облік_тов.ціна).
Наприклад, задано дві таблиці:

  • План випуску виробів «План_вир»:

Рис. 10.23. Таблиця «План випуску виробів»

Рис. 10.24. Структура таблиці «План випуску виробів»

  • Склад виробу «Склад_вир»:

Рис. 10.25. Таблиця «Склад виробу»

Рис. 10.26. Структура таблиці «Склад виробу»

Наприклад, відкрити таблиці в областях з номерами 1 і 2 та вивести перший запис із цих таблиць:
SELECT 1
USE план_вир
SELECT 2
USE склад_вир
SELECT 1
DISPLAY
Record# МІСЯЦЬ КОД_ВИРОБУ КІЛЬК_ВИР
1         10         22                          235
SELECT 2
DISPLAY
Record# КОД_ВИРОБУ КОД_ДЕТАЛІ КІЛЬК_ДЕТ
1                    22                    A1231                         250
Між двома таблицями або більше можна встановити від-
ношення (зв’язок) залежно від якогось поля або виразу (ключа). Таблиці попередньо повинні бути проіндексовані по по-
лю (виразу), яке є спільним для всіх таблиць, і відкриті в різних областях. За допомогою команди SET RELATION можна встановити зв’язок «один-до-одного». Ця команда має такий формат:
SET RELATION TO <ключ> INTO <ім’я таблиці> , [, <ключ> INTO < ім’я таблиці >,...]
Для вилучення зв’язку використовується така команда:
SET RELATION TO
Зв’язок «один запис із багатьма» встановлюється за допомогою команди SET SKIP TO <ім’я таблиці>. Перед використанням цієї команди необхідно виконати попередній зв’язок командою SET RELATION. Вилучення зв’язку відбувається за допомогою такої команди: SET SKIP TO .
Наприклад: встановити зв’язок між таблицями ПЛАН_ВИР та СКЛАД_ВИР, вивести пов’язані дані з двох таблиць (рис. 10.27).

Рис. 10.27. Встановлення відношень між таблицями
ПЛАН_ВИР та СКЛАД_ВИР

10.2.9. Робота з базами даних

У ранніх версіях VFP термін «база даних» застосовувався до окремих файлів даних з розширенням DBF. Починаючи з версії VFP 3.0, базою даних називається файл із розширенням DBC, який використовується для встановлення постійних зв’язків між таблицями та створення уявлень. Останні дозволяють створювати запити, звіти та форми. Таким чином, будь-який DBF-файл може бути вільною таблицею (Free-table) або компонентом бази даних.
Створення бази даних відбувається за допомогою команди CREATE DATABASE <ім’я DBC-файла> або через меню FILE>NEW, вибрати DATABASE і натиснути на кнопку NEW FILE. У результаті виконання команди на екрані з’явиться вікно конструктора баз даних DATABASE DESIGNER.
Додавання існуючих таблиць до бази даних можна виконати, вибравши команду ADD TABLE в меню DATABASE, натиснувши на праву кнопку миші або увести цю команду в командному вікні.
Створення таблиці можна виконати одним з нижче перелічених методів:

  • у меню DATABASE вибрати NEW TABLE;
  • натиснути на праву кнопку миші та вибрати NEW TABLE;
  • застосувати раніше розглянутий метод створення таблиць (меню FILE>NEW, команда CREATE).

Відкриття та редагування бази даних відбувається за допомогою команд OPEN DATABASE <ім’я DBC-файла> та MODIFY DATABASE або через меню FILE>OPEN, вибрати DATABASE та ім’я бази даних. У результаті виконання команди на екрані з’явиться вікно конструктора баз даних DATABASE DESIGNER .
Вилучення таблиць та уявлень з бази даних виконується натисненням клавіші DELETE або правої кнопки миші (команда DELETE) після виділення відповідної таблиці. В результаті з’явиться запрошення: вилучити таблицю з бази даних (REMOVE) або взагалі з диска (DELETE).
Редагування таблиць можна виконувати традиційним способом або, натиснувши на праву кнопку миші, можна вибрати команди BROWSE та MODIFY (редагування структури).
Встановлення зв’язків між таблицями. Перед встановленням зв’язку між двома таблицями повинні бути створені відповідні індекси. Так, у відношенні «один-до-багатьох» таблиця «один» повинна мати первинний ключовий індекс (Primary key), а таблиця «багато» — індекс, який може застосовуватися як зовнішній ключ (Foreign key). Наприклад, у таблиці ПЛАН_ВИР Primary key — це індекс із назвою «міс_код_в», який створений за виразом str(мі­сяць) + str(код_виробу), тому що значення поля код_виробу можуть повторюватися у різних місяцях. У таблиці СКЛАД_ВИР Primary key — це індекс із назвою «код_виробу» який створений за виразом str(код_виробу) + str(код_деталі), тому що значення поля код_ви­робу можуть повторюватися для різних деталей. Фактично, зв’язу­вання цих таблиць за полем код_виробу відноситься до типу «багато-до-багатьох». Але наявність в індексі крім поля код виробу поля місяць робить записи унікальними. Тому, можна зв’язати таблиці за індексами «міс_код_в» (таблиця ПЛАН_ВИР) та «код_виробу» (таблиця СКЛАД_ВИР), який створений по виразу str (код_виробу). Для встановлення зв’язку необхідно встановити курсор на ім’я індексу (Primary key) таблиці «один», натиснути на ліву кнопку миші і, не відпускаючи її, перемістити мишу на ім’я індексу (Foreign key) другої таблиці. Вікно діалога Relationship повинно містити вірні імена індексів і тип відношення (у даному випадку — «один-до-багатьох», див. рис. 10.28). Для редагування відношення виділити лінію зв’язку лівою кнопкою миші, натиснути на праву кнопку миші і вибрати EDIT RELATIONSHIP, а для вилучення зв’язку — REMOVE RELATIONSHIP.
Закриття бази даних відбувається за допомогою команди CLOSE DATABASE. При цьому закриваються всі відкриті файли в усіх робочих областях.

Рис. 10.28. Встановлення зв’язку між таблицями

10.2.10. Створення запитів та уявлень

СУБД VFP містить у своєму складі структуровану мову запитів SQL — промисловий стандарт для роботи з реляційними базами даних. Для створення запитів можна користуватися майстрами та конструктором QUERY DESIGNER. Запит зберігається у файлі з розширенням QPR і містить інструкцію SQL SELECT.
Створення запиту за допомогою майстра. У меню FILE вибрати команду NEW, натиснути на селекторну кнопку QUERY, а потім — WIZARD. У вікні, що з’явилося (рис. 10.29), вибрати Query Wizard.

Рис. 10.29. Вибір майстра для створення запиту
На першому кроці можна вибрати поля (з кількох таблиць), які будуть включені у запит (рис. 10.30).

Рис. 10.30. Крок 1 QUERY WIZARD — вибір полів для включення
На другому кроці (рис. 10.31) встановлюється відношення між таблицями. Після вибору полів, за якими встановлюється зв’язок, необхідно натиснути на кнопку ADD, для вилучення зв’язку — REMOVE.

Рис. 10.31. Крок 2 QUERY WIZARD — встановлення відношення
На третьому кроці задається фільтр для відбору записів.
На жаль, у критерії не можна використовувати функції, а тільки конкретні значення. Так, на рис. 10.32 у якості критерієв задано, що вибирати треба записи за 10-й місяць та код виробу рівний 22. Відібрані записи зображено на рисунку 10.35.

Рис. 10.32. Крок 3 QUERY WIZARD — встановлення
фільтра для вибору записів
Четвертий крок, що показаний на рис. 10.33, дозволяє задати порядок сортування за трьома полями. Треба вибрати поля та натиснути на кнопку ADD. Кнопки Ascending та Descending дають змогу вибрати порядок сортування: за зростанням або зменшенням значень обраних полів.

Рис. 10.33. Крок 4 QUERY WIZARD — визначення порядку

Рис. 10.34. Крок 5 QUERY WIZARD — закінчення створення запиту
П’ятий крок — це закінчення створення запиту (рис. 10.34). Натиснувши на кнопку Preview, можна переглянути результат роботи запиту (рис. 10.35). Якщо у ньому щось не влаштовує, тоді натисненням на кнопку BACK можна повернутися на будь-який крок і внести зміни. Для закінчення створення запиту треба натиснути на кнопку FINISH або просто ENTER, попередньо вибравши один з трьох варіантів: зберегти запит та повернутися у вікно COMMAND (Save query); зберегти запит та виконати його (Save and run it); зберегти запит та використати конструктор запитів Query Designer для його модифікації (Save query and modify it). Потім необхідно ввести ім’я файла. На диску буде створено файл із розширенням QPR.

Рис. 10.35. Результат виконання запиту
з використанням фільтра
Для виконання запиту використовується команда DO <ім’я запиту.qpr>, або меню PROGRAM>DO та вибирається ім’я запиту. Редагування запиту відбувається тільки за допомогою конструктора QUERY DESIGNER одним з двох шляхів: командою MODIFY QUERY <ім’я запиту> (Наприклад, modify query query1); меню FILE>OPEN і вибрати тип файлів Query та ім’я запиту.
Створення запиту за допомогою конструктора запитів можна почати двома методами: увести команду CREATE QUERY <ім’я файла>; у меню FILE вибрати команду NEW, натиснути на селекторну кнопку QUERY, а потім — на кнопку NEW FILE і набрати ім’я файла. У вікні, що з’явилося (рис. 10.36), вибрати потрібну базу даних, а далі — файли.

Рис. 10.36. Додавання таблиць у запит
Для додавання вільних таблиць натиснути на кнопку OTHER. Після додавання другої таблиці на екрані з’явиться блок діалогу JOIN CONDITION (рис. 10.37), в якому визначається спосіб зв’язку таблиць. Список ліворуч дозволяє вибрати поле із першої таблиці, список праворуч — із другої. Посередині за допомогою селекторних кнопок визначається тип відношення між полями:


Рис. 10.37. Блок діалогу JOIN CONDITION

  • Inner join — «внутрішнє поєднання», містить тільки ті записи з обох таблиць, які відповідають умові поєднання;
  • Left outer join — ліве зовнішнє поєднання, містить усі записи таблиці зліва і записи, що задовольняють умову поєднання праворуч;
  • Right outer join — праве зовнішнє поєднання, містить усі записи таблиці праворуч і записи, що задовольняють умову поєднання ліворуч;
  • Full outer join — повне зовнішнє поєднання, містить всі записи з обох таблиць, для яких виконується умова поєднання.

На рис. 10.38 зображено вікно конструктора запитів, яке містить такі вкладинки: FIELDS, JOIN, FILTER, ORDER BY, GROUP BY.
Вкладинка FIELDS (рис. 10.38) призначена для вибору полів та виразів, значення яких будуть виводитись у запиті.
Для додавання у запит виразу його потрібно ввести у вікно Functions та Expressions або натиснути на кнопку, що розташована поруч. Завантажиться будівник виразів, який дозволить увести вираз у більш зручній формі. Потім потрібно натиснути на кнопку ADD для додавання виразу у список вибраних полів. Наприклад, для розрахунку потреби в деталях у запит уводиться такий вираз:

Страницы [ 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 ]


ВНИМАНИЕ! Содержимое сайта предназначено исключительно для ознакомления, без целей коммерческого использования. Все права принадлежат их законным правообладателям. Любое использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием содержимого сайта.
© 2007-2021 BPK Group.