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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2005, 16:16   #1  
ibc is offline
ibc
Участник
Аватар для ibc
 
472 / 30 (2) +++
Регистрация: 12.05.2003
Адрес: Москва
Запросы в Аксапта
Читаю книку "Разработа в Аксапта" раздел про составление запросов и что то не понимаю, как создать запрос с SQL-ным условием having - т.е. с условием на агрегатную функцию запроса.
И ещё если нужно сделать вложенный запрос типа (select * from (select * from LALALA))
как оно в аксапта реализуется?
правильно ли я понял, что в аксапта все запросы через табл. переменную делаются или через объект query?
Старый 08.08.2005, 16:27   #2  
Axapta is offline
Axapta
Участник
 
91 / 12 (1) ++
Регистрация: 21.06.2002
Адрес: Moscow
Re: Запросы в Аксапта
Цитата:
Изначально опубликовано ibc
Читаю книку "Разработа в Аксапта" раздел про составление запросов и что то не понимаю, как создать запрос с SQL-ным условием having - т.е. с условием на агрегатную функцию запроса.
И ещё если нужно сделать вложенный запрос типа (select * from (select * from LALALA))
как оно в аксапта реализуется?
правильно ли я понял, что в аксапта все запросы через табл. переменную делаются или через объект query?
Having и вложенные запросы аксапта напрямую не поддерживается, но это довольно просто решается циклом (второе решение, на крайний случай) - через классы *Connection пишется любой запрос).
Нет, можно делать запросы без использования объекта Query c помощью оператора X++ select, напр.:

while select inventTable
where inventTable.ItemId like 'булка*'

Но чаще всего рекомендуется по возможности использовать классы Query и QueryRun....
Старый 08.08.2005, 16:35   #3  
ibc is offline
ibc
Участник
Аватар для ibc
 
472 / 30 (2) +++
Регистрация: 12.05.2003
Адрес: Москва
Re: Re: Запросы в Аксапта
Цитата:
Изначально опубликовано Axapta


Having и вложенные запросы аксапта напрямую не поддерживается, но это довольно просто решается циклом (второе решение, на крайний случай) - через классы *Connection пишется любой запрос).
Нет, можно делать запросы без использования объекта Query c помощью оператора X++ select, напр.:

while select inventTable
where inventTable.ItemId like 'булка*'

Но чаще всего рекомендуется по возможности использовать классы Query и QueryRun....
через цикл не годится...нужно, к примеру, что бы вложенный запрос отрабатывался за одно обращение к серверу!

Хмм... через классы Connection любой запрос пишется именно на скл? можно пример?
Старый 08.08.2005, 16:44   #4  
Axapta is offline
Axapta
Участник
 
91 / 12 (1) ++
Регистрация: 21.06.2002
Адрес: Moscow
Re: Re: Re: Запросы в Аксапта
Цитата:
Изначально опубликовано ibc


через цикл не годится...нужно, к примеру, что бы вложенный запрос отрабатывался за одно обращение к серверу!

Хмм... через классы Connection любой запрос пишется именно на скл? можно пример?
Если Вам принципиально, чтобы только за одно обращение, то ок, но я думаю в большинстве случаев - непринципиально.
Пример из руководства:

{
UserConnection Con = new UserConnection();
Statement Stmt = Con.createStatement();
ResultSet R = Stmt.executeQuery('SELECT VALUE FROM SQLSYSTEMVARIABLES');
while ( R.next() )
{
print R.getString(1);
}
}
Старый 08.08.2005, 17:00   #5  
ibc is offline
ibc
Участник
Аватар для ibc
 
472 / 30 (2) +++
Регистрация: 12.05.2003
Адрес: Москва
PHP код:
{
UserConnection Con = new UserConnection();
Statement Stmt Con.createStatement();
ResultSet R Stmt.executeQuery('SELECT VALUE FROM SQLSYSTEMVARIABLES');
while ( 
R.next() )
{
print 
R.getString(1);
}

в Stmt.executeQuery(?) качестве параметра любой код скл?
Старый 08.08.2005, 22:47   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
executeQuery() - для исполнения любых конструкций T-SQL, возвращающих набор данных
executeUpdate() - для исполнение любых конструкций T-SQL, НЕ возвращающий набор данных.
Для Oracle - соответственно поддерживается диалект Oracle (т.к. исполнение запроса идет именно сервером БД)
В частности, для SQL Server вполне применимы такие конструкции типа
PHP код:
statement.executeUpdate("USE MASTER"
Данная конструкция -устанавливает текущей - базу Master
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Каков процент внедрений "стандартной" поставки системы Аксапта? coolibin DAX: Прочие вопросы 17 10.02.2009 12:45
Разные запросы в 2-х и 3-х уровневой конфигурациях. Что делать?! Anais DAX: Программирование 12 04.11.2004 12:47
Адрес клиента в Аксапта 3.0 кто-нить вводил? Venera DAX: Функционал 8 05.11.2003 19:44
Почему Аксапта пытается установить Microsoft Office и как это обойти. AOS DAX: Администрирование 12 24.10.2003 10:39
После остановки и запуска AOS Аксапта начинает тормозить Balyasnikov DAX: Администрирование 7 09.09.2002 12:27

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

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

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