|  01.07.2003, 13:24 | #1 | 
| Участник | 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 | 
| Юзовские | PHP код: 
			SELECT * FROM LedgerTrans WHERE ((TransDate>=01.01.2003 AND TransDate<=01.07.2003)) | 
|  | 
|  01.07.2003, 16:50 | #3 | 
| Участник | 
			
			Спасибо конечно, но что я теперь с этой строкой буду делать? как ее применить к While select например?
		 | 
|  | 
|  01.07.2003, 17:09 | #4 | 
| ---------------- | 
			
			А зачем??? Может что-то надо в задаче поменять?   | 
|  | 
|  01.07.2003, 17:58 | #5 | 
| NavAx | PHP код: 
			
				__________________ С уважением, Игорь Ласийчук. | 
|  | 
|  01.07.2003, 18:02 | #6 | 
| Участник | 
			
			Просто хотелось получиьь типовой подход к построению нестандартных отчетов, то есть появляется диалоговое окно в котором пользователь вводит критерии (по правилам Аксапты)например фильтрация по номенклатуре, датам, и т.п.  а потом мне эти критерии хотелось бы использовать в SQL запросах в X++, потому что строить Query не всегда удобно. Вот и все задача, думал может есть какойто объект который сможет разложить стандартные критерии запросов на такие которые будут приемлимы в SQL.
		 | 
|  | 
|  01.07.2003, 18:18 | #7 | 
| ---------------- | 
			
			нет такого
		 | 
|  | 
|  01.07.2003, 19:27 | #8 | 
| Юзовские | 
			
			Если я не ошибаюсь, запросы на прямую к базе данных может выполнять метод executeQuery класса Statement. Его можно получить из класса ODBCconnection. Результат такого запроса - класс ResultSet. | 
|  | 
|  01.07.2003, 20:40 | #9 | 
| NavAx | Цитата: 
		
			Изначально опубликовано ni  Просто хотелось получиьь типовой подход к построению нестандартных отчетов, то есть появляется диалоговое окно в котором пользователь вводит критерии (по правилам Аксапты)например фильтрация по номенклатуре, датам, и т.п. а потом мне эти критерии хотелось бы использовать в SQL запросах в X++, потому что строить Query не всегда удобно. 
				__________________ С уважением, Игорь Ласийчук. | 
|  | 
|  02.07.2003, 02:25 | #10 | 
| Участник | ? 
			
			SQL - стандарт ANSI\SPARK ... а всякие извращения типа QueryBuildDataSource и т.д. - это самодятельность только усложнающая жизнь... если разработчики такие гении, чтож они не разработали собственную СУБД ... в дополнение? Все эти прибамбасы - для пыли в глаза ... все делается для усиления собственной значимости ... | 
|  | 
|  02.07.2003, 11:01 | #11 | 
| Участник | 
			
			Почему не создали? Создали. Попробуйте ключ native  Только native база не поддерживается уже давно. Насчет QueryBuildDataSource (QBDS). На самом деле я не думаю, что это извращение. Если работать с текстовым запросом, то этот текстовый запрос постоянно парсить надо. А тут разработчику сразу предоставляется объект с методами. Воспринимайте QBDS как обертку вокруг запроса. И жизнь сразу станет легче. Насчет исходного вопроса ni. Для этих целей в Аксапте уже есть инструменты. Поглядите на форму и классы SysQueryForm. | 
|  | 
|  02.07.2003, 11:05 | #12 | 
| Участник | 
			
			Маленькое добавление. native база ОФИЦИАЛЬНО не поддерживается. Т.е. нигде в рекламных материалах, документации вы этого не найдете. Официальная линия поддержки не отвечает на вопросы по этой базе данных. | 
|  | 
|  07.07.2003, 05:05 | #13 | 
| Участник | 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 не такая уж плохая система ... ничем не хуже остальных ... таких же... Имеющая возможность доработки (правда с некоторыми оговорками...) С наилучшими пожеланиями ... | 
|  |