Цитата:
Сообщение от
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