Страница 1 из 1
					
				Проблема со временной таблицей
				Добавлено: 19 ноя 2004, 14:52
				 michman
				В цикле во временную таблицу вставляю записи:
someCO:=InitMarker('GetSomeFpCO', 2, 15, 13);
for (i:=0; i < GetMarkerCount(someCO); i:=i+1)
{GetMarker(someCO, i, mrkCO);
 Insert into tblSomeCO select nRec, name from FPCO where((mrkCO/==FPCO.nRec));
}
а в итоге там оказывается только последняя
Вчем причина
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 19 ноя 2004, 15:10
				 oiko
				Могу ошибиться но по моему такая конструкция требует еще "update current tblSomeCo;" следующей строкой.
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 19 ноя 2004, 15:15
				 Goblin
				Конструкция Insert Into ... Select ...
не поддерживается
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 19 ноя 2004, 15:51
				 blackoff
				тока не "update current tblSomeCo;" 
,а 
"insert current tblSomeCo;"
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 20 ноя 2004, 08:56
				 michman
				временная таблица почемута не может содержать больше одной записи.
я попробовал вставить туда все записи из реяльной таблицы:
insert tblSomeCO select * from FPCO;
но в итоге во временной оказалась только одна запись - последняя из FPCO.
может где-то, как-то устанавливается размер временной таблицы?
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 20 ноя 2004, 09:21
				 Vitas
				Для начала хотелось бы узнать, как ты пришел к выводу, что во временной таблице одна запись?
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 20 ноя 2004, 09:50
				 michman
				посмотрел её:
 Window TSOMECOW ' Выбранные ЦО 'doAccept;
 show at(1,1,20,23);
  Browse tsomeco;
  table SFPCO;
  fields 
   SFPCO.name : protect;
  end;
end;
И в итоге одна запись- последняя из FPCO
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 20 ноя 2004, 10:02
				 Vitas
				а запрос у фейса какой был?
			 
			
					
				Re: Проблема со временной таблицей
				Добавлено: 21 ноя 2004, 14:34
				 IStep
				function InitMarker (name : string; size, count, delta : longInt; sorted : boolean) : longInt;
sizeof(nRec) = 8, а у тебя 2 - только младшие 2 байта сохраняешь!
...повезло, у тебя старшие байты nRec-ов не пустые, а то потом ;(
Ради побыстрее (уж не знаю быстрее-ли? ) :
for (i:=GetMarkerCount(someCO); i<=0; Dec(i))