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

Where not exists (select * from dog

Читайте также:
  1. Put in articles where required.
  2. Repeat where the nickname of the Bank conies from.
  3. This is the first album where we did not invite any guest musicians; everything sounds on the album as it does in concert,” she said.
  4. V. Use the appropriate items where necessary.

Реализуя запрос на языке SQL, получим

SELECT Det.ImDet FROM DET

WHERE NOT EXISTS (SELECT * FROM DOG

WHERE (dog.KDet=det.KDet) AND (dog.DtN>’10.10.2006’)

AND NOT EXISTS (SELECT * FROM PSTS WHERE (psts.KPst=dog.KPst)

AND (psts.AdrPst<>’Казань’))

AND NOT EXISTS (SELECT * FROM PST WHERE (pst.KPst=dog.KPst) AND (pst.Kdet=dog.KDet)))


Ниже приводится пример реализации запроса средствами языка DELPHI с использованием команд навигации по таблицам.

При реализации запроса учитываются следующие эквивалентные представления:

Учитывая, что семантически

§ реализация оператора «b:=$xÎFile(B(x))» может быть представлена в виде:

b:=false; RESET(File);

WHILENOT b ANDNOT EOF(File) DO

BEGIN READ(File,x); b:=B(x) END

§ реализация оператора «b:="xÎFile(B(x))»:

b:=true; RESET(File);

WHILE b ANDNOT EOF(File) DO

BEGIN READ(File,x); b:=B(x) END

Для проверки значения кванторной формулы на соответствующем наборе данных, после завершения цикла необходимо проверить значение переменной - селектора . Отметим, что изменение значения селектора завершает цикл, не перебирая все записи из таблицы File, что, вообще говоря, оптимизирует время выполнения программы

 

Вернемся к исходной форме запроса:

НАЙТИ{(de.ImDet)/deÎDet}:

("doÎDog)((do.DataN<=’10.10.2006’ Ú do.KDet¹de.KDet)Ú

($psÎPsts)((ps.KPst=do.KPst)&(ps.AdrPst¹’Казань’))Ú

($pvÎPst)((pv.KPst=do.KPst)&(pv.KDet=do.KDet)))

 

 

{ NewTable - таблица, куда помещаются результаты запроса. Эта таблица должна быть создана заранее}

NewTable.Close; NewTable.EmptyTable; NewTable.Open;

{ Открываются все таблицы }

PstsTable.Open; DogTable.Open; DetTable.Open; PstTable.Open;;

{Внешний цикл строится по таблице Det}

DetTable.First;


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


<== предыдущая страница | следующая страница ==>
МЕТА РОБОТИ| IF aDog then begin

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