| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			update_recordset
			 
			
			Всем привет) 
		
		
		
		
		
		
			Помогите разрешить такую ситуацию: есть контейнер conRecId, который содержит набор RecId, полученных из некоторого запроса Query. Требуется выполнить нечто вроде update_recordset table1 setting table1.field1 = value where table1.recid in (conRecId) Как это можно сделать? 
				__________________ 
		
		
		
		
	Step by step...  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			если значений не много, то можно сделать что-то типа 
		
		
		
		
		
		
			
		
		
		
		
	X++: update_recordset table1 setting table1.field1 = value where table1.recid like con2str(conRecId);  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Чудес не бывает: создайте query, создайте в нем столько ranges, сколько элементов в контейнере. Следите, чтобы количество ranges не зашкалило за 400: jinx: Maximale Anzahl von Einschr?nkungen in einer Abfrage ?
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось EVGL; 04.09.2007 в 13:03.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			что значит не много? чем ограничено это количество?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Step by step...  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну, прежде всего, типом возвращаемого значения метода con2str. 
		
		
		
		
		
		
			
		
		
		
		
	У меня там str 1000, что неплохо. Помимо этого, смотрите пред. пост Евгения про кол-во фильтров. Самый простой способ - экспериментальным путем это выяснить  
		 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 kashperuk: разве можно в части where использовать контейнеры, компилятор по крайней мере не пропускает
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Step by step...  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну, это его просто глючит. 
		
		
		
		
		
		
			
		
		
		
		
	А вот если вынести преобразование в строку до обновления, то таки натыкаемся на проблему... Update_Recordset видимо глупая команда, и не может понять, что используется like, а соответственно, может быть перечень значений, то есть строка. Поэтому видимо таки придется построчно обвнолять.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() Видимо да))))) Спасибо за участие!!! 
				__________________ 
		
		
		
		
	Step by step...  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++:     InventTable it;
    container   c;
    str 1000    s;
    ;
    s = con2str(c);
    
    update_recordset it
    setting ItemId = "value"
    where it.ItemId like s; | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да. Главное, чтобы это было не Мемо и не динамический str
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вы точно убедились что будет работать ? 
		
		
		
		
		
		
		
		
			Цитата: 
	
		
			Like "Value1,Value2"
		
	 
Цитата: 
	
		
			Like "Value*"
		
	 
Последний раз редактировалось Logger; 04.09.2007 в 14:28.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: kashperuk (3). | |
| 
			
			 | 
		#12 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Насколько я понимаю, Like "Value1,Value2" работать не будет.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 |