Страница 1 из 1

Ошибка при компиляции интерфейса

Добавлено: 11 янв 2008, 11:03
hope
Добрый день, Всем!!!

Компилирую простой интерфейс. Выдается предупреждение, но хоть это и предупреждение, интерфейс работает, но не правильно.

Вот текст интерфейса:

INTERFACE Import_Otdel 'Импорт отделов в таблицу в памяти' DoAccept,EscClose, CYAN;
SHOW AT (20,5,60,10);
CREATE VIEW NN
VAR
my_otdel:Integer; // отдел = номер магазина
AS SELECT *
FROM TMP_KatSopr, Tmp_Otd
WHERE (( ROOT==TMP_KatSopr.Nrec

and ROOT==TMP_otd.Nrec
and my_otdel==TMP_otd.otd

))
;

HANDLEEVENT
cmInit:
{
_LOOP TMP_KatSopr
{
my_otdel:=TMP_KatSopr.otdel;
! если не нашли отдел, то добавляем его в Tmp_otd
IF NOT(GetFirst Tmp_otd = tsOk)
{
INSERT TMP_Otd SET otdel=my_otdel;
}
}

mtChangeRefCount(#TMP_Otd, 1);

CloseInterFace(cmDefault);
Stop;

}
end // Hadleevent
END. // Interface

Предупреждение следующее:

Модифицируется таблица TMP_OTD, а указана TMP_KATSOPR.

Как понять это сообщение? где указана TMP_KATSOPR? В чем же ошибка?

Добавлено: 11 янв 2008, 11:33
edward_K
INSERT TMP_Otd SET TMP_Otd.otdel=my_otdel ;
у вас поле используется в 2 таблицах - наверняка в vip_res.log было написано. А лучше всегда пишите таблу - так оно надежней.

Добавлено: 11 янв 2008, 11:55
hope
аааа! блин! поле otdel - это в TMP_KatSopr, а в таблице TMP_OTD поле называется otd. Спасибо! Сама заментить не могла.