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

Проблемка...

Добавлено: 03 авг 2010, 18:20
BlazeBio
Может кто-нибудь навести на мысль почему срабатывает месага(#2...), а следующие месаги не появляются(#3,#4,#5)? А то уже запарился,(в прямом смысле - на улице +33, а у нас не работает кондёр), мозги уже не соображают, в глазах плывёт. Доп. view используется, так как основное и так уже раздуто.

Код: Выделить всё

create view fritta
as select *
from katmc k1(katmc02)
where k1.kgroupmc like '070203%';
//.....................................................	


						fritta._loop k1
							{
									//message('#1'+fritta.k1.name);
									i:=instr(' ',fritta.k1.name)+2;
									j:=length(fritta.k1.name)-i+1;
									s1:=substr(fritta.k1.name,i,j);
								if getfirst ppkatstanmc where ((fritta.k1.nrec==ppkatstanmc.cmc)) = tsok
								{  			message('#2'+s1);
										if getfirst ppkatstan where ((ppkatstanmc.cppkatstan==ppkatstan.atl_nrec))= tsok
											{
												  message('#3'+s1);
												  ppkatstan.name:=s1;
												  ppkatstan.cgroupmc:=fritta.k1.cgroupmc;
												  update current ppkatstan;
												  //knrec:=ppkatstan.atl_nrec;
												  //ppkatstanmc.cmc:=t1.nrec;
												  //ppkatstanmc.cppkatstan:=knrec;
												 // update current ppkatstanmc;




											}
								}
								else
								{
									if getfirst ppkatstan where ((s1==ppkatstan.name))= tsok
										  {		message('#4'+ppkatstan.name);
												knrec:=ppkatstan.atl_nrec;
												clearbuffer(#ppkatstanmc);
												ppkatstanmc.cmc:=fritta.k1.nrec;
												ppkatstanmc.cppkatstan:=knrec;
												insert current ppkatstanmc;
										  }
										  else
										  {
												  message('#5',s1+fritta.k1.cgroupmc);
												 clearbuffer(#ppkatstan);
										         clearbuffer(#ppkatstanmc);
												 ppkatstan.name:=s1;
												 ppkatstan.cgroupmc:=fritta.k1.cgroupmc;
												 insert current ppkatstan;
												 knrec:=ppkatstan.atl_nrec;
												 ppkatstanmc.cmc:=fritta.k1.nrec;
												 ppkatstanmc.cppkatstan:=knrec;
												 insert current ppkatstanmc;

                                          }


								}
							}

Re: Проблемка...

Добавлено: 03 авг 2010, 18:27
edward_K
потому как 2 в первом if, а остальные в else к нему. Аккуратность в коде облегчает жизнь не только себе, но и тем кто потом будет сие .. разгребать. Есть же какие то правила (типа закрывающая цикл скобка должна стоять под открывающей, сдвиг фиксированный 1-2 символа и т.п.) и редакторы удобные.

Re: Проблемка...

Добавлено: 03 авг 2010, 19:14
BlazeBio
Скобки стоят вроде как нужно, а сдвинулась одна скобка, хз, наверное при вставке в сообщение , а мессага #2 ... я в ступоре :???: , вообще она не должна была срабатывать так как в ppkatstanmc не было таких нреков...
....стоп....вот оно...
...оказалось, что есть ссылки на нреки, которых уже нет! Поэтому не работало. Удаление записей в ppkatstan ранее происходило без удаления ссылок в ссылочной таблице ppkatstanmс (один ко многим).Стало легче, не так жарко :neutral: , поэтому наверное сообразил(мозг по-тихоньку начал включаться.) :P edward_k,спс, избавил от ступора. :!: