Программирование >>  Понятие sql 

1 ... 80 81 82 [ 83 ] 84 85 86 ... 95


EXEC SQL BEGIN DECLARE SECTION; SQLCODE : integer;

newcity : packed array[1..12] of char; commnull : boolean; citynull : boolean; response : char; EXEC SQL END DECLARE SECTION;

EXEC SQL DECLARE CURSOR Salesperson AS SELECT * FROM SALESPEOPLE;

begln { main program }

EXEC SQL OPEN CURSOR Salesperson;

EXEC SQL FETCH Salesperson INTO (:snum, :sname, :city, :i cit, :comm, :i com);

{ Выборка первой строки }

hile SQLCODE=0do{ П

while SQLCODE=0do{ Пока эти строки в таблице Продавцов.} begin

if i com < 0 then commnull: = true; if i cit < 0 then citynull: = true; { Установить логические флаги, которые могут показать NULLS.} if citynull then begin

write (Нет текущего значения city для продавца , snum, Хотите предоставить хотя бы одно? (Y/N)); { Подсказка покажет значение city состоящее из NULL значений.}

read (response); { Ответ может быть сделан позже.} end { если citynull } else begin { не citynull } if not commnull then { Чтобы выполнять сравнение и операции только для не-NULL значений связи }

begin

if city=London then comm:=comm*.02*.02 else comm:=comm+.02;

end;

{ Даже если значение и не - commnull, begin и end здесь для ясности.} write (Текущий city для продавца, snum, есть, city, Хотите его изменить? (Y/N));

{ Обратите Внимание: Продавец, не назначеный в данное время в определенный

город, не будет иметь изменений комиссионых при определении, находятся ли он

в Лондоне.}

read (response);

{ Ответ теперь имеет значение независимо от того, что citynull верен или неверен.}

end; { иначе не citynull} if response = Y then begin

write (Введите новое значение city:); read (newcity); if not commnull then { Эта операция может быть выполнена только для не-NULL значений.} case newcity of: begin

Barcelona : comm:= comm + .01, San Jose : comm:= comm * .01 end; { случно и если не commnull}

EXEC SQL UPDATE Salespeople

SET city = :newcity, comm = :comm:i com

WHERE CURRENT OF Salesperson;

{ Переменная индикатора может поместить NULL значение в поле comm если так назначено.}

end; { Если ответ = Y, или если ответ <> Y, изменений не

будет.}

EXEC SQL FETCH Salesperson INTO (:snum, :sname, :city, :i clt, :comm, :l com);

{ выборка следующей строки }



end; { если SQLCODE = 0} EXEC SQL CLOSE CURSOR Salesperson;

end; {основной программы}



Приложение B

ТИПЫ ДАНН1Х В SQL



1 ... 80 81 82 [ 83 ] 84 85 86 ... 95

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика