Студопедия — join.prg
Студопедия Главная Случайная страница Обратная связь

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

join.prg

* Постоянное соединение таблиц

clear

CLOSE TABLES all

USE poski

If file ("posk_nov.dbf")

Delete file("posk_nov.dbf")

endif

COPY fields nomp, nomd, nomr, kolw, data TO posk_nov

USE detl

If file ("det_nov.dbf")

DELETE file ("det_nov.dbf")

endif

COPY fields nomd, naim, cwet, vesd, cena TO det_nov

SELECT 1 &&Выбор РОП1

USE det_nov&& Помещаем detl_nov в РОП1

BROWSE

SELECT 2 &&Выбор РОП2

USE posk_nov && Помещаем posk_nov в РОП2

BROWSE

IF FILE("soed.dbf") && Если файл существует то удалить его

delete FILE("soed.dbf")

endif

join with a to soed for a.nomd=b.nomd; &&соединить с РОП1 файл posk_nov по равенству a.nomd=b.nomd

fields a.nomd,a.naim,nomr,kolw,data &&В выходной файл soed включить поля из РОП1 a.nomd,a.naim,

&&из РОП2 включить поля nomr,kolw,data. Номер своего РОПа по умолчанию не указывается

USE soed &&активизируем ТБД soed

BROWSE &&Просмотр ТБД soed

WAIT

SELECT 2 &&Выбор РОП2

USE soed &&soed помещается в РОП2

browse

IF FILE("soed312.dbf") && Если файл существует то удалить его

delete FILE("soed312.dbf")

endif

join with a to soed312 for a.nomd=b.nomd;

fields nomd,naim,nomr,kolw,data,a.cena &&соединение ТБД РОП1 с ТБД РОП2

USE soed312

BROWSE

WAIT

IF FILE("soed312_i.idx") && Если файл существует, то удалить его

delete FILE("soed312_i.idx")

endif

INDEX on nomd+DTOC(data) TO soed312_i compact &&индексация ТБД soed1 по составному выражению

&& nomd + DTOC(data)для получения выходного файла soed312_i

USE soed312 INDEX soed312_i.idx && активизируем индексный файл soed312_i

 

browse

clear

return

 

6.2 Создание временных связей между таблицами

Можно создать временное соединение таблиц, используя РОПы.

На экран выводится результат индексации сначала по номеру поставщика, затем по номеру детали. Далее на дисплей выводится таблица, в которой поля проиндексированы по номеру поставщика, затем по номеру детали и добавлено еще одно вычисляемое поле proizv, которое рассчитывается как произведение поля kolw из таблицы poski и поля cena из таблицы detl. Необходимо отметить, что такое вычисление возможно благодаря временному соединению таблиц.

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

 

*Файл связь. Временное соединение таблиц в ОП.

? "Временное соединение таблиц в ОП"

CLEAR

CLOSE TABLES ALL

SET TALK OFF &&Выключить разговоры системы по перезаписи

USE poski EXCLUSIVE

INDEX ON nomp+nomd TO pd_i COMPACT &&Индексация по составному ключу

SELECT b &&Выбор РОП2

USE poshk EXCLUSIVE

INDEX ON nomp TO poshk_i COMPACT &&Индексация по nomp

SELECT c &&Выбор РОП3

USE detl EXCLUSIVE

INDEX ON nomd TO detl_i COMPACT &&Индексация по nomd

SELECT a &&Выбор РОП1

USE poski INDEX pd_i &&Вызов файла poski с его индексом pd_i

SELECT b &&Выбор РОП2

USE poshk INDEX poshk_i &&Вызов файла poshk с его индексом poshk_i

SELECT c &&Выбор РОП3

USE detl INDEX detl_i &&Вызов файла detl с его индексом detl_i

SELECT a &&Выбор РОП1

SET RELATION TO nomp into b &&Соединение РОП1 с РОП2 по полю nomp с сохранением результата в РОП1

BROWSE FIELDS; &&Просмотр полей сцепленных РОПов

poshk.nomp,;

poshk.famp

SET RELATION TO nomd INTO c ADDITIVE &&Соединение промежуточного файла с РОП3 по полю nomd с сохранением результата в РОП1

BROWSE FIELDS;

detl.nomd,;

detl.cena

SET SKIP TO b,c &&Сделать просмотр записей в РОП3

SELECT a &&Выбор РОП1

BROWSE FIELDS; &&Просмотр полей сцепленных РОПов

poshk.nomp,;

poshk.famp,;

detl.nomd,;

detl.cena,;

poski.kolw,;

poski.data,;

poski.proizv=poski.kolw*detl.cena; &&Построчное умножение значения поля kolw файла poski на значение поля cena файла detl

TITLE "Поставщики" &&Установка заголовка таблицы

SUM (poski.kolw*detl.cena) TO itog &&Суммирование произведений значений поля kolw файла poski

&&на поле cena файла detl с сохранением результата в переменной памяти itog

? "Итог=",itog &&Вывод на экран itog

COUNT TO lnb &&Подсчёт числа записей в переменной памяти b

? "Число записей ", lnb &&Вывод числа записей

? "Средняя величина ", itog/lnb &&Вывод результата расчёта значения среднего произведения

SET RELATION TO &&Закрытие всех созданных связей

WAIT

CLEAR

RETURN

Мы видим, что в программе можно создавать вычисляемые поля непосредственно через программный код, а не создавать поля вручную, через структуру таблицы.

 

Контрольный вопрос: в чем состоит преимущество использования временных связей между таблицами по сравнению с использованием постоянных связей между ними?




<== предыдущая лекция | следующая лекция ==>
СЛОВАРЬ ЖУРНАЛИСТСКИХ ТЕРМИНОВ | туроператор по международному и внутреннему туризму, реестровый номер МТЗ 001539

Дата добавления: 2015-07-04; просмотров: 535. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

ТЕОРИЯ ЗАЩИТНЫХ МЕХАНИЗМОВ ЛИЧНОСТИ В современной психологической литературе встречаются различные термины, касающиеся феноменов защиты...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Studopedia.info - Студопедия - 2014-2024 год . (0.024 сек.) русская версия | украинская версия