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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2003, 13:24   #1  
ni is offline
ni
Участник
 
5 / 10 (1) +
Регистрация: 18.06.2003
Адрес: msk
QueryBuildRange.value() -->> SQL statement
Есть ли способ конвертировать значение фильтров из запроса (QueryBuildRange.Value(ФИЛЬТР)) в условия для SQL запроса? Нарпример:

есть фильтр
.......addRange(fieldnum(InventTable, ItemId)).value("д..м");

а нужно получить, и потом как то выполнить....
........
select InventTable
where (InventTable.ItemId <= "м" && InventTable.ItemId >= "д")
Старый 01.07.2003, 14:55   #2  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
PHP код:
Query q = new Query();
querybuilddatasource qbds;
;
qbds q.addDataSource(tablenum(ledgertrans));
qbds.addrange(fieldnum(ledgertrans,transdate)).value(sysquery::range(01\01\2003,systemdateget()));
box::info(qbds.toString()); 
Говорит
SELECT * FROM LedgerTrans WHERE ((TransDate>=01.01.2003 AND TransDate<=01.07.2003))
Старый 01.07.2003, 16:50   #3  
ni is offline
ni
Участник
 
5 / 10 (1) +
Регистрация: 18.06.2003
Адрес: msk
Спасибо конечно, но что я теперь с этой строкой буду делать? как ее применить к While select например?
Старый 01.07.2003, 17:09   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
А зачем???
Может что-то надо в задаче поменять?
Старый 01.07.2003, 17:58   #5  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
PHP код:
    Common      table;
    
QueryRun    queryRun;
    ;

    
queryRun = new QueryRun(query);
    while (
queryRun.next())
    {
        
table queryRun.getNo(1);
        
info(table.(fieldNum(InventTableItemId)));
        ....
    } 
__________________
С уважением, Игорь Ласийчук.
Старый 01.07.2003, 18:02   #6  
ni is offline
ni
Участник
 
5 / 10 (1) +
Регистрация: 18.06.2003
Адрес: msk
Просто хотелось получиьь типовой подход к построению нестандартных отчетов, то есть появляется диалоговое окно в котором пользователь вводит критерии (по правилам Аксапты)например фильтрация по номенклатуре, датам, и т.п. а потом мне эти критерии хотелось бы использовать в SQL запросах в X++, потому что строить Query не всегда удобно. Вот и все задача, думал может есть какойто объект который сможет разложить стандартные критерии запросов на такие которые будут приемлимы в SQL.
Старый 01.07.2003, 18:18   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
нет такого
Старый 01.07.2003, 19:27   #8  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Если я не ошибаюсь, запросы на прямую к базе данных может выполнять метод executeQuery класса Statement. Его можно получить из класса ODBCconnection.
Результат такого запроса - класс ResultSet.
Старый 01.07.2003, 20:40   #9  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
Изначально опубликовано ni
Просто хотелось получиьь типовой подход к построению нестандартных отчетов, то есть появляется диалоговое окно в котором пользователь вводит критерии (по правилам Аксапты)например фильтрация по номенклатуре, датам, и т.п. а потом мне эти критерии хотелось бы использовать в SQL запросах в X++, потому что строить Query не всегда удобно.
Это всего лишь дело привычки.
__________________
С уважением, Игорь Ласийчук.
Старый 02.07.2003, 02:25   #10  
Aethete is offline
Aethete
Участник
 
14 / 10 (1) +
Регистрация: 27.06.2003
?
SQL - стандарт ANSI\SPARK ...

а всякие извращения типа QueryBuildDataSource и т.д. - это самодятельность
только усложнающая жизнь...

если разработчики такие гении, чтож они не разработали собственную СУБД ...
в дополнение?

Все эти прибамбасы - для пыли в глаза ... все делается для усиления собственной значимости ...
Старый 02.07.2003, 11:01   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Почему не создали? Создали.
Попробуйте ключ native
Только native база не поддерживается уже давно.

Насчет QueryBuildDataSource (QBDS).
На самом деле я не думаю, что это извращение.
Если работать с текстовым запросом, то этот текстовый запрос постоянно парсить надо. А тут разработчику сразу предоставляется объект с методами.

Воспринимайте QBDS как обертку вокруг запроса. И жизнь сразу станет легче.

Насчет исходного вопроса ni.
Для этих целей в Аксапте уже есть инструменты.
Поглядите на форму и классы SysQueryForm.
Старый 02.07.2003, 11:05   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Маленькое добавление.
native база ОФИЦИАЛЬНО не поддерживается.
Т.е. нигде в рекламных материалах, документации вы этого не найдете. Официальная линия поддержки не отвечает на вопросы по этой базе данных.
Старый 07.07.2003, 05:05   #13  
Aethete is offline
Aethete
Участник
 
14 / 10 (1) +
Регистрация: 27.06.2003
re
Простите, что напоминаю, но
Axapta реализована на
базе СУБД ORACLE и MS SQL ... как правило ..
и как следствие этого просто обязана пользоваться
средствами доступа к данным вышеупомянутых СУБД,
т.е. SQL, что порождает дополнительные затраты на вычесления
(все то же стандартное выполнение произвольного запроса, + предварительный
разбор на сервере приложений и формирование соответствующего SQL запроса...)
и перекачивание данных - с СУБД на сервер приложений - клиент и обратно ...
Причем перекачиваются все данные, относящиеся к базовому отношению
определенному в запросе, не важно нужны они, или нет, что естесственно
отрицательно сказывается на общем времени реакции системы ...
Чтобы в этом убедиться, можно просто открыть так называемый "паспорт записи".


То, что средства разработки Axapta предоставляют в качестве
классов и прочих дел - не более, чем надстройка представляющая
из себя более высокий уровень абстракции для конечного
пользователя (разработчика) ... и являющейся схемой метаданных
для работы интерпретатора (как я думаю и тому в подтверждение по крайней мере
две причины:
1. Формы, процедуры, запросы и т.д. разрабатываются средствами Axapta и
создаются непосредственно в Axapta - выполнение запросов на сервере приложений,
отображение на клиенте ...
2. Средства выполнения и отладки - это на мой взгляд - ключевой момент, т.к. любая ошибка
созданного модуля, запускаемого на уровне ОС может привести к краху этой самой ОС,
а возможность отладки - вообще недопустима, т.к. система на это время остановится, в то
время, как Axapta допускает возможность вызова системных функций ... правда я так
подозреваю - не всех... некий аналог пользовательских типов можно создать cредствами
container, но опять же ... представлены не все атомарные типы данных byte, word, dword ...
нет, функций для работы с указателями (не в интерпретации X++) и приведения типов данных ...
вобщем методов работы с памятью...
) ядра сервера приложений ...
И все эти самые средства разработки имеют одну, на мой взгляд основную
цель - скрыть от пользователя (разработчика) истинную логическую
модель данных в самой СУБД.
Кстати ... именно по этому (на мой взгляд) в схеме СУБД не определено
ни одного ограничения (кроме NOT NULL) ... вся логика зашита в слои
разработчика, к которому естесственно никто не пустит ... )

По поводу "программных слоев" - широко разрекламированное, якобы Know How
фирмы ...
На мой взгляд в этом нет ничего революционного ...
Любой программист, пишущий под любую ОС любую программу использует системные
вызовы ... чувствуете связь ...?
На всякий случай - объясню. Описывая создание на любом языке (Object Pascal [Delphi], C++, VB, Perl и т.д.)
например окошка (если например под винды..) компилятор все-равно запрашивает функцию
CreateWindow ...
а теперь запустите программу под 98 а потом под XP ... даю 101% гарантии, что окошки
будут разные по форме ... но функция то осталась та же ...
короче есть стандарт, называется API ... так вот это оно и есть ...

На самом деле Axapta не такая уж плохая система ... ничем не хуже остальных ... таких же...
Имеющая возможность доработки (правда с некоторыми оговорками...)

С наилучшими пожеланиями ...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Dynamics AX 2009 & SQL Server 2008 Blog bot DAX Blogs 0 10.06.2008 21:08
axcoder: >BeauSQL -- SQL beautifier Blog bot DAX Blogs 0 24.03.2008 14:05
Data migration AX 3.0 SP3 Oracle 9.1 -> AX 4.0 SP2 SQL 2005 dacom DAX: Администрирование 12 30.11.2007 11:25
Как посмотреть параметры коннекта АОС -> SQL ? egorych DAX: Администрирование 2 28.08.2007 13:39
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:21.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.