Показать сообщение отдельно
Старый 08.11.2012, 23:50   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Narayana Посмотреть сообщение
И в следующем посте от Сергея Мазуркина вижу "Грубо говоря, результатом работы Query является строка "select ... from ... where ... join" "

Товарищи Заслуженные Аксаптоведы, вы уж тогда между собой договоритесь...
1. "следюущий пост" - это вот этот Query, где почитать?
2. противоречия нет.

есть следующие сущности. две из них имеют одинаковое название:
2.1. Query - объект, который позволяет строить СТРОКУ ЗАПРОСА вида "select ... from ... where ... join ...". Эта строка запроса так или иначе уходит на SQL-сервер.
2.2. QueryRun - объект, который принимает Query и фактически посылает строку на SQL, принимает результаты из SQL.
2.3. есть ОПЕРАТОР языка X++ select (http://msdn.microsoft.com/en-us/library/aa861766.aspx) (S.Kuskov назвает командой языка)
в результате выполнения оператора также уходит запрос на SQL-сервер и тут же принимаются результаты с SQL

так вот:
Query позволяет легко модифицировать СТРОКУ запроса программным образом.
Query позволяет работать с метасимволами поиска http://axapta.mazzy.ru/lib/search/
Query позволяет дать пользователю возможность модифицировать запрос
Query позволяет разработчику создать объект-прототип в AOT и потом легко создать запрос (Query q = new Query(querystr(myQueryInAOT)))

X++:
Query q = new Query(querystr(CustTable));
QueryRun qr = new QueryRun(q);
CustTable custTable;

while( qr.next() )
{
  custTable = qr.get(tablenum(custTable));
  info(custTable.name);
}
оператор языка SELECT нельзя модифицировать никоим образом.
и в простейших ситуациях программисты часто используют именно его, предполагая, что "так проще".
X++:
CustTable custTable;

while select custTable
{
  info(custTable.name);
}

различайте оператор языка X++ select и строку SQL-запроса, которая содержит select
За это сообщение автора поблагодарили: driller (2), Narayana (1).