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)');
3. Обратите
Внимание: Продавец не назначеный в
данное время
в определенный
город, не будет иметь изменений комиссионых
при определении
находятся ли он в Лондоне.
read (ответ);
{Ответ теперь имеет
значение независимо от того что
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 если так
назначено.}
380 ПОНИМАНИЕ
SQL
___________________________________________________________________
ПРИЛОЖЕНИЕ A
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; {основной
программы}