Корифеи, совет нужен...
Добавлено: 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.
Стоит раскомментировать индекс - перестает обнаруживать задублированные телефоны. Может, я что не так написала

 Очевидно, самое простое в моей ситуации - расслабиться и плюнуть, что в отчет строки попадают не отсортированные - отчет в идеале должен быть пустым, ведь  номер мобильника может быть привязан только к одному сотруднику
 Очевидно, самое простое в моей ситуации - расслабиться и плюнуть, что в отчет строки попадают не отсортированные - отчет в идеале должен быть пустым, ведь  номер мобильника может быть привязан только к одному сотруднику  