Корифеи, совет нужен...
Добавлено: 10 июл 2006, 19:27
Имеется интерфейс, который проверяет, являются ли номера телефонов в базе уникальными:
Вроде все просто, но!!!
Стоит раскомментировать индекс - перестает обнаруживать задублированные телефоны. Может, я что не так написала
Код: Выделить всё
Interface TestPhone 'Проверка мобильных';
view mob1
var
curr_numb: string;
c_per: comp;
alarm: boolean;
as select com1.addr, per1.tabnmb, per1.fio, per1.nrec
from synonym communications com1,
synonym persons per1
where ((per1.nrec == com1.person and 07D0000000000240h==com1.comtype))
and length(trim(com1.addr))>0 and longint(per1.disdate)=0;// order o1 by per1.tabnmb;
view mob2
as select com2.addr, per2.tabnmb, per2.fio
from synonym communications com2 , synonym persons per2
where ((com2.person == per2.nrec))
and 07D0000000000240h=com2.comtype and com2.person <> mob1.c_per
and mob1.curr_numb=com2.addr and longint(per2.disdate)=0;
form PhoneDouble('Phone.out');
HandleEvent
cmInit: {
// mob1.SetOrder(tiO1);
mob1.alarm:=false;
_loop per1 {
mob1.curr_numb:=mob1.com1.addr;
mob1.c_per:=mob1.per1.nrec;
if mob2.getfirst =tsOK then {
mob1.alarm:=true;
PhoneDouble.write(mob1.curr_numb);
PhoneDouble.write(mob1.per1.tabnmb);
PhoneDouble.write(mob1.per1.fio);
PhoneDouble.write(mob2.com2.addr);
PhoneDouble.write(mob2.per2.tabnmb);
PhoneDouble.write(mob2.per2.fio);
}
}
if mob1.alarm then {
PhoneDouble.PutEvent(feBreak);
PhoneDouble.ShowFile('Phone.out');
abort;
}
else {
message('Все в порядке! Можно закачивать данные');
}
abort;
}
end;
end.
Стоит раскомментировать индекс - перестает обнаруживать задублированные телефоны. Может, я что не так написала
