- •Федеральное агентство по образованию рф
- •Глава 1 Понятие и основные функции системы управления базами данных 4
- •Глава 2. Процедурное программирование в среде субд 33
- •Глава 3. Организация поиска информации в базе данных 45
- •Глава 4. Работа с многотабличной базой данных. Связывание таблиц данных 49
- •Глава 5 Основы языка структурированных запросов (sql) 51
- •Введение
- •Глава 1 Понятие и основные функции системы управления базами данных
- •1.1 Система управления базами данных
- •1.2 Модели субд
- •Иерархические базы данных
- •Сетевые базы данных
- •Реляционные базы данных
- •1.3 Главное окно в среде Visual FoxPro
- •1.3 Организация хранения базами данных .
- •1.3.1 Логическая архитектура базы данных в Visual FoxPro
- •1.3.2 Задание типов данных
- •1.4. Современные технологии хранения и поиска.Среда Visual FoxPro Конструкторы Visual Foxpro
- •Окна Visual Foxpro
- •Мастера Visual Foxpro
- •Менеджер проекта
- •1.5 Создание однотабличной базы данных и индексирование
- •1.6 Создание представления данных (Local views)
- •1.7. Создание однотабличных форм Создание экранных форм в Visual Foxpro
- •1.8 Формирование однотабличных отчетов Формирование отчетов
- •Построение отчетов
- •Создание визиток
- •Глава 2. Процедурное программирование в среде субд
- •2.1 Структура команд субд FoxPro
- •2.2 Основные команды работы с таблицей базы
- •2.3 Работа с массивами переменных
- •2.4. Типы команд ввода-вывода
- •Команда вывода блока текста:
- •2.5 Команда if
- •2.6 Команда выбора
- •2.7. Организация цикла
- •2.8. Организация fox – меню
- •2.9. Организация dBase – меню
- •2.10 Организация клавишных меню
- •2.11 Добавление записей таблицы в командном файле
- •2.12 Добавление записей из других таблиц
- •Глава 3. Организация поиска информации в базе данных
- •3.1 Последовательный поиск
- •3.2 Ускоренный поиск
- •3.3 Фильтрация базы данных
- •3.4 Организация процедур
- •Глава 5 Основы языка структурированных запросов (sql)
- •Лабораторный практикум
- •Задания по вариантам для лабораторного практикума
- •Лабораторная работа № 1 Создание и редактирование таблицы базы данных. Упорядочение информации в таблице базы данных
- •Лабораторная работа № 2 Создание однотабличных формы, запроса и отчета в среде субд
- •Лабораторная работа № 3
- •Лабораторная работа № 4
- •Лабораторная работа № 5 Работа с несколькими таблицами базы данных. Организация связи между базами данных
- •Лабораторная работа № 6 Создание многотабличных форм. Формирование многотабличных отчетов
- •Лабораторная работа № 7 Организация структурированного запроса (sql) в базе данных. Создание проекта. Построение исполняемого файла
- •Лабораторная работа № 8
- •Примечание
2.12 Добавление записей из других таблиц
Нужно добавить записи в текущую таблицу из другой таблицы. Можно читать по одной записи, сохранять значения полей в переменных памяти, а затем добавлять эти значения в запись второй таблицы:
SELECT EMPLOYEE
SCAN
SCATTER MEMVAR
SELECT EMPL9
APPEND BLANK
GATHER MEMVAR
SELECT EMPLOYEE
ENDSCAN
Вместо того, чтобы «разбрасывать» значения по переменным памяти, можно использовать массив для сохранения значений полей из одной записи.
SELECT EMPLOYEE
SCAN
SCATTER TO EMPLOYEE
SELECT EMPL9
APPEND BLANK
GATHER FROM EMPLOYEE
SELECT EMPLOYEE
ENDSCAN
Если две таблицы имеют одинаковую структуру, то можно поступить гораздо проще. Для этого следует воспользоваться командой
APPEND FROM Добавляет записи в текущую таблицу из другого файла.
При выполнении следующих команд все записи из таблицы CURPROD добавляются в таблицу PRODHITS:
SELECT PRODHITS
APPEND FROM CURPROD
Если из таблицы CURPROD требуется добавить только те записи, у которых значение поля lInProduction равно .F., используйте следующие строки программы:
SELECT PRODHITS
APPEND FROM CURPROD FOR NOT lInProduction
С помощью члена FIELDS можно даже указать и перечень добавляемых полей. Член FIELDS определяет поля, в которые добавляются записи, а не поля, из которых эти значения копируются. Более того, добавляемые поля должны иметь одинаковые имена и параметры в обеих таблицах.
Глава 3. Организация поиска информации в базе данных
Поиск самая распространенная операция в системе обработки данных. Важнейшим элементом любой системы управления базами данных является наличие средств поиска данных. Ускоренный поиск обычно реализуется введением индексных файлов, организацией прямого доступа к данным.
3.1 Последовательный поиск
В программе возможна организация удобного для пользователя поиска данных в базе. Команда LOCATE осуществляет последовательный поиск одной самой первой записи в базе данных, удовлетворяющей заданному FOR-условию среди записей, находящихся в заданных границах, и до тех пор пока соблюдается WHILE-условие.
LOCATE [<границы>] [FOR <выражение>] [WHILE <выражение>]
Границы поиска могут быть заданы следующими параметрами:
ALL – поиск по всем записям базы;
NEXT N - поиск по следующим указанным записям номеров до N;
RECORD N - поиск указанного номера записи;
REST - поиск, начиная с текущей, и до последней записи;
FOR и WHILE – устанавливает условие поиска, например, поиск с указанным именем поля;
Команда продолжения поиска записей, начатого ранее командой LOCATE:
CONTINUE
В результате работы команды указатель записи переходит на следующую запись, удовлетворяющую условиям поиска в команде LOCATE.
Для поиска всех записей по заданным условиям команду CONTINUE нужно поместить в цикл. Если командой LOCATE или CONTINUE не было найдено нужных записей, указатель записи устанавливается на конец файла.
При успешном поиске, когда указатель устанавливается на найденную запись, можно определить номер этой записи с помощью функции RЕСNO(), Функция FOUND(), оценивающая результат поиска, принимает значения «Истина» (.true.).
ПРИМЕР. Поиск по указанному значению поля KOMU.
LOCATE FOR KOMU ="ALPHA"
В результате работы команды указатель записи переходит на первую запись, в которой поле KOMU имеет значения ALPHA. Если значения не найдено, то указатель переходит на конец файла.