Студопедия — 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; просмотров: 539. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

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