AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2011, 07:59   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
в полученной строке символы '==' заменить на '=', '||' заменить на 'or', '&&' заменить на 'and'
У меня на AX2009 эти замены уже содержаться в результате QBDS.toString().
Также exists join меняется на exists() и всё в таком духе. Единственным исключением наверное является Advanced query range value expressions.
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
В общем, требуется редактирование, чтобы преобразовать полученную строку в T\SQL.
В общем, согласен
За это сообщение автора поблагодарили: Ace of Database (2).
Старый 20.12.2011, 13:42   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
У меня на AX2009 эти замены уже содержаться в результате QBDS.toString().
Также exists join меняется на exists() и всё в таком духе. Единственным исключением наверное является Advanced query range value expressions.
Точно У меня на АХ2009 простенькие проекты, и я не успел заметить новшества.
Все мясо пока еще в АХ30, вот там приходится чуть ли не ежедневно такие строки получать.
Старый 20.12.2011, 13:59   #3  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Нет, все-таки и в АХ30 вместо '==' toString выдает '=' и вместо '||' выдает 'or'.
Видимо, я спутал случаи, когда надо кусок кода из Аксапты вырезать и анализировать через SQL Management Studio

Указанный ниже джоб выдает практически одинаковые результаты в АХ30 и в АХ2009

В АХ30 результат такой:
SELECT * FROM InventTable WHERE ((ItemId = 123 OR ItemId = 124)) EXISTS JOIN * FROM InventTableModule WHERE InventTable.ItemId = InventTableModule.ItemId AND ((ModuleType = Склад))

В АХ2009 результат такой:
SELECT FIRSTFAST * FROM InventTable WHERE ((ItemId = N'123' OR ItemId = N'124')) EXISTS JOIN FIRSTFAST * FROM InventTableModule WHERE InventTable.ItemId = InventTableModule.ItemId AND ((ModuleType = 0))

Кстати, очень умно Аксапта2009 добавляет FirstFast, видимо, чувствует, что идет фильтрация по уникальному индексу. И еще удобно, что вместо "Склад" пишет значение 0.

PHP код:
static void Job471(Args _args)
{
    
Query                   Query;
    
QueryRun                QueryRun;
    
QueryBuildDatasource    qbds;
    ;
    
Query = new Query();
    
qbds Query.addDataSource(tableNum(InventTable));
    
qbds.addRange(fieldNum(InventTableItemId)).value("123, 124");

    
qbds qbds.addDataSource(tableNum(InventTableModule));
    
qbds.addRange(fieldNum(InventTableModuleModuleType)).value(queryValue(ModuleInventPurchSales::Invent));
    
qbds.addLink(fieldNum(InventTableItemId), fieldNum(InventTableModuleItemId));
    
qbds.joinMode(JoinMode::ExistsJoin);

    
QueryRun = new QueryRun(Query);
    
info(QueryRun.query().dataSourceNo(1).toString());


Последний раз редактировалось Ace of Database; 20.12.2011 в 14:02.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Reporting Extensions Installation Fails to install on SQL 2008 Reporting services after applying 959494 and 957312 Blog bot DAX Blogs 1 23.06.2011 14:27
axinthefield: SQL Server Trace Flags for Dynamics AX Blog bot DAX Blogs 0 23.11.2010 21:11
Connection к другому SQL Server Poleax DAX: Программирование 5 19.10.2010 10:49
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:42.