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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2012, 23:26   #1  
Narayana is offline
Narayana
Участник
 
241 / 100 (4) +++++
Регистрация: 05.01.2009
Адрес: Москва
Цитата:
Сообщение от RVS Посмотреть сообщение
Narayana, вы сами поняли, что именно спросили? "Некоторая Структура Для Использования Оператора Селект".. внушает..
Думаю, если вы занимаетесь Аксаптой не позже, чем с 2003 года, то тем более должны были понять

Но, если не поняли, попробую детализировать собственное высказываение.
Если посмотреть в хелп по разработке, то можно увидеть, что оператор select стоит особняком от классов, их методов и функций, что наводит на мысль о его некоторой базовой роли.
Если вы что-нибудь слышали об устройстве аксиоматических математических моделей, то должны понимать, что такой подход наиболее эффективен для построения и изучения систем программных. А именно, очень важен порядок вещей. Что в основе, а что следствие. То есть, понимаете, очень редко бывает нагромождение из равноценных деталей. Так сказать с одинаковым приоритетом. Всегда иерархия.
Так вот, эту самую иерархию, с вашего позволения, я и выискиваю в интересующем меня вопросе.

Улавливаете мысль?
То есть, я могу временно ошибаться в порядке вещей и их включении друг в друга, но мой подход выявления противоречий обязательно приведет к полному прояснению конструкции.

Дак вот, читаем хэлп:
"
The select statement fetches or manipulates data from the database or both fetches and manipulates data from the database.
All select statements use a table variable to fetch records. This variable must be declared before a select statement can be executed.
The select statement only fetches one record, or field. To fetch additional records, you can use the next statement. The next statement fetches the next record in the table. If you use next without a preceding select command, an error occurs. Do not use next with the firstOnly find option. If you need to traverse a number of records, it is more appropriate to use a whileselect statement.
Results of a select statement are returned in a table buffer variable. If you use a field list in the select statement, only those fields are available in the table variable. If you use aggregate functions, such as sum or count, the results are returned in the fields that you perform the sum or count over. You can only count, average, or sum the integer and real fields. "

Этот кусочек текста в первую очередь наводит на мысль, что и создание объекта типа таблицы, вещь довольно первичная. И применение оператора select, тоже. Ведь этот оператор не является даже методом какого-нибудь класса, как я понимаю.
Чувствуете, на что намекаю?
Есть объектная модель языка X++ для Аксапты.
Эта модель предполагает стройную систему классов, методов и объектов.
А есть кое-что, что стоит как бы над этой объектной моделью.
Этакие торчащие уши, за которые система общается с внешним окружением.

Дак вот, я и предположил, что оператор select, это и есть нечто, лежащее вне объектной модели Х++.

Стало быть, конструкции внутри классов (не смущает слово "конструкции"?) могут использовать этот базовый оператор для работы с данными.
Ну и естественно, подумал, что методы классов Query...* вполне в своей внутренней реализации могут также использовать оператор select.
Ну, теперь понятно, борец вы наш за чистоту идеалов?



Цитата:
Сообщение от RVS Посмотреть сообщение
И с помощью QueryBuild*, И с помощью встроенного select можно построить запрос к базе данных. Этот запрос можно выполнить, результат - использовать.

Так понятнее? )
Вы меня, конечно, извините, но это и ежику понятно.
Речь, как вы уже поняли, шла о том, не является ли оператор select главным внутренним кубиком, с помощью которого строится QueryBuild и в словах Сергея Мазуркина я увидел намек, что является. А вот вы именно на этот вопрос не ответили.


Цитата:
Сообщение от RVS Посмотреть сообщение
А вообще - можно, конечно, задавать иди..тские вопросы.
А можно (альтернативно) - код посмотреть, в клаву потыкать (осмысленно), книжку почитать.. на худой конец.. Вы б попробовали, что ли )
Мне кажется, уважаемый RVS, что вы кушаете много жирного. Вследствие этого у вас эмоциональная реакция несколько опережает умственную
Старый 08.11.2012, 23:41   #2  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Очень много букв, цитировать не буду, звиняйте.. Итак :

Попробуем зайти с противоположного конца : select был всегда. По крайней мере, он появился вместе с SQL-сервером (могу ошибаться, но не сильно).

Axapta появилась несколько позже. Axapta работает с базой данных SQL.

Уже это наводит на некоторые мысли

В Axapta есть 2 способа получения данных из базы данных :

- написание явно, в коде Х++, select-стейтмента
- построение Query, который (внимание!) тоже выполнит некий select-statement
===
- Query можно построить "из кода" (семейство классов QueryBuild*)
- Query можно нарисовать в AOT

Вот, собственно, и все, что копья ломать?


Оператор Select, таким образом, не является "кубиком, с помощью которого строится". Оно "строится" для того, чтобы этот Select описать и затем выполнить (это я про Query)
===

Что до прочего - личного :

- мне видится, что вы не умеете формулировать вопросы
- мне видится, что у вас каша в голове пока что
- мне видится, что было бы знаком уважения к "знатокам Axapta" хотя бы попытаться разобраться (не начитаться.. терминов, а именно разобраться) в предмете. Прежде, чем задавать вопросы.

В конце концов, все, что вам здесь сказали, многократно написано. У вас, как я понял, есть живая Axapta, которая сама по себе - лучшая литература по Axapta.. ну, и так далее..

Воооот...
__________________
Best Regards,
Roman

Последний раз редактировалось RVS; 08.11.2012 в 23:51. Причина: Немного подробностей
Старый 09.11.2012, 00:15   #3  
Narayana is offline
Narayana
Участник
 
241 / 100 (4) +++++
Регистрация: 05.01.2009
Адрес: Москва
Цитата:
Сообщение от RVS Посмотреть сообщение
Попробуем зайти с противоположного конца : select был всегда. По крайней мере, он появился вместе с SQL-сервером (могу ошибаться, но не сильно).

Axapta появилась несколько позже. Axapta работает с базой данных SQL.

Уже это наводит на некоторые мысли ...
Безусловно, наводит.
И в первую очередь на мысль, что select в Аксапте, это не тот же самый select, что в родном для SQL-server select на sql-transact. Надеюсь, вы понимаете, что select в Аксапте даже не есть вызов SQL-серверного select. А если не есть, то и говорить не о чем, потому как к устройству Аксапты в нашем случае это отношения не имеет.
Но, вот в SQL server оператор select, скорее всего, появился тогда же, когда и механизм построения запросов. И скорее всего, они были в таких супружеских отношениях, как и в Аксапте.

"Query, который (внимание!) тоже выполнит некий select-statement"
"Оператор Select, таким образом, не является "кубиком, с помощью которого строится"."
"Оно "строится" для того, чтобы этот Select описать и затем выполнить (это я про Query) ""

ё-мое... ))
Если select выполнить, значит использовать. Если использовать, значит кубик. Не упорствуйте ))

"Что до прочего - личного :

- мне видится, что вы не умеете формулировать вопросы"

Я умею формулировать вопросы.

"- мне видится, что у вас каша в голове пока что"

Если бы у меня не было каши сейчас в голове, то этот сайт мне был бы не нужен.
По секрету открою вам одну тайну.
У всех каша в голове.
И у вас тоже

"- мне видится, что было бы знаком уважения к "знатокам Axapta" хотя бы попытаться разобраться (не начитаться.. терминов, а именно разобраться) в предмете. Прежде, чем задавать вопросы."

Еще раз уверяю вас, что мои вопросы вполне нормальные и разбираться я умею не хуже вас. Но, комплексов насчет стесняться спросить у меня нет.
То, о чем я сейчас спрашиваю не написано в явном виде в документации и, мало того, ну, совсем крутые специалисты в Аксапте на некоторые из этих вопросов без всяких комплексов ответили "Не знаю!".
Так что, оставьте свои нравоучения для малолетних
За это сообщение автора поблагодарили: macklakov (1).
Старый 09.11.2012, 00:28   #4  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от Narayana Посмотреть сообщение
select в Аксапте, это не тот же самый select, что в родном для SQL-server select на sql-transact.
Синтаксис несколько иной, по сути - то же самое.
Цитата:
Сообщение от Narayana Посмотреть сообщение
select в Аксапте даже не есть вызов SQL-серверного select.
Дааа? "А пацаны-то и не в курсе.."
Цитата:
Сообщение от Narayana Посмотреть сообщение
Если select выполнить, значит использовать. Если использовать, значит кубик. Не упорствуйте ))
Передергиваете

Вы спросили : "не является ли оператор select главным внутренним кубиком, с помощью которого строится QueryBuild"

Ответ : нет, не является "кубиком, с помощью которого строится QueryBuild". И вообще, QueryBuild - не строится, он строит. Строит Query, который при выполнении его из QueryRun выполняет тот самый SQL-серверный select. Включите трассировку SQL в Axapta, вы удивитесь, видимо

Именно это и имел в виду, говоря, что вы.. забавно задаете вопросы.
__________________
Best Regards,
Roman
Старый 09.11.2012, 00:46   #5  
Narayana is offline
Narayana
Участник
 
241 / 100 (4) +++++
Регистрация: 05.01.2009
Адрес: Москва
Цитата:
Сообщение от RVS Посмотреть сообщение
Вы спросили : "не является ли оператор select главным внутренним кубиком, с помощью которого строится QueryBuild"
Хотите пообщаться на тему "Что может означать слово "строится"?" ?
Старый 09.11.2012, 00:52   #6  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Если только в Курилке
__________________
Best Regards,
Roman
Теги
query, архитектура, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление поля с определённым типом во всех таблицах. Corel DAX: Программирование 1 20.12.2008 13:37
Достаточно ли изменить дату в таблицах inventTrans, inventTransPosting, VendPackingSlipJour? DmitryS DAX: Программирование 3 18.09.2008 14:37
Проверки заполненных значений в связанных таблицах. miklenew DAX: База знаний и проекты 11 25.12.2007 14:40
Как не использовать relations на таблицах demetra DAX: Программирование 13 14.07.2006 11:00
Осторожнее с CTRL+S на таблицах mit DAX: Администрирование 7 25.07.2005 19:09

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

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

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