|
![]() |
#1 |
Участник
|
Цитата:
![]() Но, если не поняли, попробую детализировать собственное высказываение. Если посмотреть в хелп по разработке, то можно увидеть, что оператор 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. Ну, теперь понятно, борец вы наш за чистоту идеалов? Цитата:
Речь, как вы уже поняли, шла о том, не является ли оператор select главным внутренним кубиком, с помощью которого строится QueryBuild и в словах Сергея Мазуркина я увидел намек, что является. А вот вы именно на этот вопрос не ответили. Цитата:
![]() |
|
![]() |
#2 |
Сенбернар
|
Очень много букв, цитировать не буду, звиняйте.. Итак :
Попробуем зайти с противоположного конца : 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. Причина: Немного подробностей |
|
![]() |
#3 |
Участник
|
Цитата:
И в первую очередь на мысль, что select в Аксапте, это не тот же самый select, что в родном для SQL-server select на sql-transact. Надеюсь, вы понимаете, что select в Аксапте даже не есть вызов SQL-серверного select. А если не есть, то и говорить не о чем, потому как к устройству Аксапты в нашем случае это отношения не имеет. Но, вот в SQL server оператор select, скорее всего, появился тогда же, когда и механизм построения запросов. И скорее всего, они были в таких супружеских отношениях, как и в Аксапте. "Query, который (внимание!) тоже выполнит некий select-statement" "Оператор Select, таким образом, не является "кубиком, с помощью которого строится"." "Оно "строится" для того, чтобы этот Select описать и затем выполнить (это я про Query) "" ё-мое... )) Если select выполнить, значит использовать. Если использовать, значит кубик. Не упорствуйте )) "Что до прочего - личного : - мне видится, что вы не умеете формулировать вопросы" Я умею формулировать вопросы. "- мне видится, что у вас каша в голове пока что" Если бы у меня не было каши сейчас в голове, то этот сайт мне был бы не нужен. По секрету открою вам одну тайну. У всех каша в голове. И у вас тоже ![]() "- мне видится, что было бы знаком уважения к "знатокам Axapta" хотя бы попытаться разобраться (не начитаться.. терминов, а именно разобраться) в предмете. Прежде, чем задавать вопросы." Еще раз уверяю вас, что мои вопросы вполне нормальные и разбираться я умею не хуже вас. Но, комплексов насчет стесняться спросить у меня нет. То, о чем я сейчас спрашиваю не написано в явном виде в документации и, мало того, ну, совсем крутые специалисты в Аксапте на некоторые из этих вопросов без всяких комплексов ответили "Не знаю!". Так что, оставьте свои нравоучения для малолетних ![]() |
|
|
За это сообщение автора поблагодарили: macklakov (1). |
![]() |
#4 |
Сенбернар
|
Цитата:
Дааа? "А пацаны-то и не в курсе.." ![]() Цитата:
![]() Вы спросили : "не является ли оператор select главным внутренним кубиком, с помощью которого строится QueryBuild" Ответ : нет, не является "кубиком, с помощью которого строится QueryBuild". И вообще, QueryBuild - не строится, он строит. Строит Query, который при выполнении его из QueryRun выполняет тот самый SQL-серверный select. Включите трассировку SQL в Axapta, вы удивитесь, видимо ![]() Именно это и имел в виду, говоря, что вы.. забавно задаете вопросы.
__________________
Best Regards, Roman |
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Сенбернар
|
Если только в Курилке
![]()
__________________
Best Regards, Roman |
|
Теги |
query, архитектура, как правильно |
|
|