Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Where NOT exists (select * FROM Dog



Реализуя запрос на языке 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-07-22; Прочитано: 196 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.117 с)...