При таком написании интерфейса:
interface leave_1 'NameOfInterface';
table struct lnach(clsch: comp, vidopl: longint, summa: double);
create view as select lnach.*, klvidopl.* from klvidopl, lnach
where ((lnach.vidopl == klvidopl.vidopl))
;// and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
var
curm: word;
cury: integer;
screen rlscr;
buttons
cmIClose;
<<
<.Закрыть.>
>>
end;
handleevent
cmInit:{
if(getfirst xarpred = tsOk){
curm := month(xarpred.datotch);
cury := year(xarpred.datotch);
} else {
message('Can''t determine date of account');
closeinterface(cmCancel);
}
}
cmIClose:{
closeInterface(cmDefault);
}
end;
end.
результат работы такой, который и ожидался, но стоит только снять комметарии с дополнительного условия в описании логической таблицы, попытка найти первую запись таблицы xarpred терпит крах... ???
Может быть, кто-нибудь расскажет, почему?
Модераторы: m0p3e, edward_K, Модераторы
Re: Может быть, кто-нибудь расскажет, почему?
Сказать почему не скажу, но когда писал несколько условий в WHERE такая же неприятность была, ни в какую не хочет три условия обработать. Пришлось две таблица вытаскивать, и из них уже по частям все собирать.
-
- Новичок
- Сообщения: 21
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Амурская область, г.Благовещенск Центральные электросети
Re: Может быть, кто-нибудь расскажет, почему?
Попробуй написать это
условие:
and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
по другому
and (klvidopl.vhvo[15] = '+' or
klvidopl.vhvo[16] = '+');
условие:
and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
по другому
and (klvidopl.vhvo[15] = '+' or
klvidopl.vhvo[16] = '+');
Не помогло :-(
???