| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			select * where ...
			 
			
			Вопрос новичка. Искал по форуму похожие проблемы, но там мутно для новичка написано. 
		
		
		
		
		
		
		
	Можно ли в запросах использовать конструкцию как написано ниже? У меня ошибка компиляции. Не могу поверить, что это не работает. InventTable it; ; oldkod='??001*'; while select forUpdate * from it where it.ItemId like oldkod { print it.itemid; } Если так писать нельзя, то как это делают в аксапте обычно?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нет, такое она не скушает, но можно сделать query добавиив к нему range с значением '*трампам' и даже больше, можно и другие поисковые символы пользовать типа диапазонов, больше\меньше и т.д..
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Примерно так 
		
		
		
		
		
		
		
	InventTable it; ; oldkod='??001*'; while select it where it.itemId like oldkod { print it.itemid; } причём компилятор также может ругаться на то, что oldkod объявлен как str. Удачи.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2  MironovI  
		
		
		
		
		
		
		
	с оператором Like всё должно пройти нормально, по крайней мере у меня всегда проходило (Ax 2.5)  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да жаль. не ожидал такого подвоха. 
		
		
		
		
		
		
		
	Буду мыслить по новому  
		 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано DenNik  
2 MironovI с оператором Like всё должно пройти нормально, по крайней мере у меня всегда проходило (Ax 2.5) PS - обявление переменной oldkod скушали?.. static void Job19(Args _args) { InventTable it; str oldkod; ; oldkod='??001*'; while select it where it.itemId like oldkod { print it.itemid; } }  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так это потому, что вы объявляли свою переменную как текстовую неограниченной длины.  
		
		
		
		
		
		
		
	Просто нужно сделать ее на основе Расширенного типа данных. И все будет ОК. ![]() Или даже просто ограничить длину строку типа str 20  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Правильно, надо объявлять как строку фиксированной длины 
		
		
		
		
		
		
		
	static void Job19(Args _args) { InventTable it; str 6 oldkod; ; oldkod='??001*'; while select it where it.itemId like oldkod { print it.itemid; } }  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Респект  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			korolf76 огромное СПСБ. 
		
		
		
		
		
		
		
	Я чувствовал, что я на верном пути ...   Теперь все встало на место.
		 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Где-то в FAQ это было... в след. раз смотрите первым делом там.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| QueryBuildRange в select.. where | 11 | |||
| Разница NotInTTS и Found | 6 | |||
| Ошибка при старте АОСа | 4 | |||
| gatesasbait: Reverse keyword on Select Statements | 0 | |||
| Вопрос про Demand Planner | 4 | |||
		
  |