| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Query, где почитать?
			 
			
			Всем добрый день! 
		
		
		
		
		
		
		
	Подскажите новичку, где можно почитать о том как строить запросы при помощи Query? А то ничего толкового найти не могу, пара простых примеров и все. Пока просто эту область не особо понимаю. Может укажите, где оно нормально расписано?  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			угу. 
		
		
		
		
		
		
		
	а главное - понимать: Query - это класс, который помогает подготовить текстовую строку запроса. Грубо говоря, результатом работы Query является строка "select ... from ... where ... join" QueryRun - это класс исполнитель запроса. Результатом являются записи, полученные от SQL-сервера после выполнения Query. Вот и вся премудрость ![]() Остальное - дело техники  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			mazzy, спасибо 
		
		
		
		
		
		
		
	это я как раз понимаю   не хватает общих знаний по конструкциям. В примитиве все понятно, но иногда надо что-то эпическое туда засунуть, с группировками, сортировками и всякими многоэтажными фильтрами, вот тут и возникают траблы
		 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			http://www.axaptapedia.com/index.php?title=Query_class 
		
		
		
		
		
		
		
	Ещё там на аксаптапедии есть интересный проект: http://www.axaptapedia.com/SYS_ExpressionQueryBuilder Методом реверс-инжиниринга можно из него получить нужные вам знания  
		 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
создайте объект-прототип в AOT. в коде напишите всего-лишь X++: Query q = new Query(querystr(myEpicQueryinAOT));  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от S.Kuskov
			 
 
			http://www.axaptapedia.com/index.php?title=Query_class 
		
	Ещё там на аксаптапедии есть интересный проект: Получается слишком много кода. Код создания Query, как правило, разбросан по разным методам. (См. InventSum::newQuery и еще три метода модификации запроса по InventSum) Получается слишком сложно поддерживаемо. Просто создайте объект в AOT. В коде модифицируйте его. Желательно при помощи SysQuery::findOrCreateRange() или при помощи Global::findOrCreateRange_W()  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не, я не предлагал ExpressionQueryBuilder в качестве пособия к применению (также эту фразу прошу не считать агитацией против этого паттерна; для обсуждения данного паттерна помнится была отдельная ветка). Я всего лишь предложил в качестве изучения возможностей Query провести реверс-инжиниринг этой штуковины. По моему очень наглядно. Если знаешь как написать запрос "select", то можно понять как этот же запрос реализуется через Query.
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось S.Kuskov; 09.11.2012 в 12:55.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2), Andy-k (1). | |
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 |