Re: Курсы обучения и статьи о разработке приложений
5. Сортировки действуют только в пределах каждого отдельного запроса. - ?
Если речь о ORDER BY ... то только в самом конце всех запросов, после всех UNION
My Visual Database → Russian → Курсы обучения и статьи о разработке приложений
5. Сортировки действуют только в пределах каждого отдельного запроса. - ?
Если речь о ORDER BY ... то только в самом конце всех запросов, после всех UNION
5. Сортировки действуют только в пределах каждого отдельного запроса. - ?
Если речь о ORDER BY ... то только в самом конце всех запросов, после всех UNION
table_1
Вася
Света
Алеся
table_2
Коля
Юля
Маша
SELECT name FROM table_1 ORDER BY name
UNION
SELECT name FROM table_2 ORDER BY name
выдаст
Алеся
Вася
Света
Коля
Маша
Юля
Чтобы упорядочить всю выборку, нужно сделать подзапрос:
SELECT data.name FROM
(
SELECT name FROM table_1
UNION
SELECT name FROM table_2
) as Data
ORDER BY Data.name
выдаст
Алеся
Вася
Коля
Маша
Света
Юля
Ну ладно )
Ничего не имею против подзапросов но вот ваш пример и правильный в действии в MVD для SQLite
И пример использования https://www.w3schools.com/sql/sql_union.asp
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
Ну ладно )
Ничего не имею против подзапросов но вот ваш пример и правильный в действии в MVD для SQLite
И пример использования https://www.w3schools.com/sql/sql_union.asp
SELECT City FROM Customers UNION ALL SELECT City FROM Suppliers ORDER BY City;
Ваша правда - практика всегда лучше рассуждений. Пожалуй, надо исправить моё неверное утверждение насчет сортировок в пределах запроса. Благодарю за науку.
Кстати, независимая сортировка отдельных выборок возможна в MySQL, но записывается чуть иначе:
( SELECT name FROM table_1 ORDER BY name )
UNION
( SELECT name FROM table_2 ORDER BY name )
В SQLite такая запись недопустима.
На онлайн сервере MYSQL 8.0.28-0ubuntu0.20.04.3
Запрос который вы указали выполняется без ошибки со скобками
но изменение порядка сортировки ASC DESC не изменяет результат,
как и на 5.5.68-MariaDB
Без скобок выводит сообщение о ошибке использования ORDER BY.
Из документации MYSQL 8 версии
Use of ORDER BY for individual SELECT statements implies nothing about the order in which the rows appear in the final result because UNION by default produces an unordered set of rows. Therefore, ORDER BY in this context typically is used in conjunction with LIMIT, to determine the subset of the selected rows to retrieve for the SELECT, even though it does not necessarily affect the order of those rows in the final UNION result. If ORDER BY appears without LIMIT in a SELECT, it is optimized away because it has no effect in any case.
Использование ORDER BY для отдельных операторов SELECT ничего не говорит о порядке, в котором строки появляются в конечном результате, потому что UNION по умолчанию создает неупорядоченный набор строк. Таким образом, ORDER BY в этом контексте обычно используется в сочетании с LIMIT, чтобы определить подмножество выбранных строк для извлечения для SELECT, даже если это не обязательно влияет на порядок этих строк в конечном результате UNION. Если ORDER BY появляется без LIMIT в SELECT, он оптимизируется, потому что в любом случае не имеет никакого эффекта.
Как то так
Три главные кнопки
Три самые популярные кнопки в приложениях, создаваемых в среде разработки My Visual Dtabase, - это кнопки редактирования табличных данных: добавление, изменение и удаление записи. Обычно они находятся рядом с каждой таблицей, которую пользователь намеревается редактировать. Но в нашем приложении кнопок редактирования всего три, поэтому они будут не обычными, а "богатырскими".
Читать: https://k245.ru/mvdb/tri-glavnye-knopki.html
Гений кроется в деталях.
Последняя статья из цикла "ClassExplorer", которая рассказывает о некоторых вспомогательных процедурах и функциях.
Читать: https://k245.ru/mvdb/genij-kroetsya-v-detalyah.html
Эффект бабочки
Завершив работу над первой версией программы "ClassExplorer", я решил немного усовершенствовать её: разнести программный код по отдельным модулям, а также добавить механизм управления стилями. Но эти казалось бы небольшие изменения создали кучу хлопот.
Читать: https://k245.ru/mvdb/effekt-babochki.html
Формы из пробирки
Визуальное средство разработки позволяет создавать любые формы с помощью мышки, перетягивая нужные элементы по экрану. Ещё несколько минут нужно на то, чтобы отредактировать необходимые параметры в редакторе свойств. А если таких форм нужно много и они практически одинаковые? Тогда, используя технологию CopyPaste, можно создать десяток форм и не о чем не беспокоиться. До тех пор, пока не понадобится внести какие-либо изменения во внешний вид или механику работы этих форм. И в этот момент разработчики начинают задумываться над альтернативными решениями.
Читать: https://k245.ru/mvdb/formy-iz-probirki.html
Мне интересно, почему в вашем коде для создания динамической формы (или других объектов) вы не «освобождаете» экземпляры при закрытии формы.
Я заметил, что MVD не делает этого с собственным созданием форм, они просто складываются, когда не используются, как скрытые.
Процедура есть как часть TObjectClass(). FreeAndNil, кажется, тоже работает, по крайней мере, компилируется.
I'm wondering why in your code for creating a dynamic form (or other objects) you don't "free" the instances when the form is closed.
I've noticed that MVD doesn't do this with native form creation, they just fold up when not in use and become hidden.
The procedure is there as part of TObjectClass(). FreeAndNil seems to work also, at least it compiles.
Дело в том, что форма умеет освобождать все компоненты, которые ей принадлежат. При создании компонента в конструкторе Create() указывается владелец, которому будет принадлежать компонент. В то же время создаваемые в коде формы "принадлежат" другому владельцу - Application . Таким образом, при завершении приложения происходит каскадное освобождение ресурсов.
Можно создавать компоненты (и формы) без указания владельца. В этом случае необходимо самостоятельно освобождать занимаемые ими ресурсы.
The matter is that the form is able to release all components which belong to it. When creating a component, the Create constructor specifies the form that the component will belong to. At the same time, the forms created in the code "belong" to another owner - application . Thus, when the application terminates, there is a cascading release of resources.
You can create components (and forms) without specifying an owner. In this case, you must independently release the resources occupied by them.
Традиция скрывать форму после завершения работы с ней вместо того, чтобы удалить её, восходит к тем временам, когда компьютеры были медленные, и создание формы занимало кучу времени. Поэтому формы создавались при запуске приложения и удалялись только по завершению программы. Другой аргумент для такого решения состоит в том, что создание/разрушение объектов приводит к фрагментации памяти. И, хотя программы, созданные на Дельфи, используют свой менеджер памяти, который снижает фрагментацию памяти операционной системы, разработчики традиционно придерживаются данной стратегии.
The tradition of hiding a form when you're done with it instead of deleting it goes back to the days when computers were slow and creating a form took a lot of time. Therefore, the forms were created when the application started and were deleted only when the program ended. Another argument for this solution is that object creation/destruction results in memory fragmentation. And, although programs created in Delphi use their own memory manager, which reduces fragmentation of the memory of the operating system, developers traditionally adhere to this strategy.
Вопрос к пользователям ClassExplorer. Сейчас примеры могут включать форматированный текст и картинки. Но форматировать текст нужно вручную.
Насколько актуально добавить автоматическое форматирование текста и подсвечивание ключевых слов для выделенного фрагмента текста? И нужно ли хранение изображений или достаточно подсветки кода, как это сделано в программе Snippet Manager?
Вопрос к пользователям ClassExplorer. Сейчас примеры могут включать форматированный текст и картинки. Но форматировать текст нужно вручную.
Насколько актуально добавить автоматическое форматирование текста и подсвечивание ключевых слов для выделенного фрагмента текста? И нужно ли хранение изображений или достаточно подсветки кода, как это сделано в программе Snippet Manager?
Очень даже актуально, с форматированием совсем по другому воспринимается.. подсветка кода помогает читать этот код. С картинкой даже не знаю , мне не обязательно.
часто получаю такую ошибку
Вот и я теперь сомневаюсь, нужны ли картинки... только веса базе прибавляют
Кстати, RTF, который используется данным компонентом по умолчанию, тоже не айс. Зато у него есть свой формат, который, судя по всему, сжатый. Но нет методов чтения/записи в базу, только через файл.
Можно попробовать подсвечивать "на лету", видел на форуме тему в англоязычной ветке (подсветка синтаксиса SQL), но автор жалуется на низкую производительность скриптов. Но попробовать можно Тогда можно будет добавить в систему поиска поиск в исходниках!
А ещё добавить возможность по клику в исходнике открывать справочный раздел по классу или типу. Например, клик с зажатой клавишей Ctrl.
часто получаю такую ошибку
Согласен, код ещё сырой, ошибок много, буду исправлять...
Отсечь всё лишнее
Подобно скульптору Родену, программисты берут глыбу программного кода и отсекают от неё все лишнее. При этом им приходится очень много размышлять, так как каждое “отсечение” хотя и делает код более изящным, но увеличивает сложность всей композиции.
Первые две версии ClassExplorer выглядят немного тяжеловато из-за того, что для некоторых сущностей я захотел иметь два представления: в виде таблицы и в виде дерева. Дерево хорошо тем, что записи можно группировать произвольным образом, что улучшает восприятие в целом, позволяя видеть всю структуру сразу. А традиционная таблица отображает записи в отсортированном виде, что может облегчить визуальный поиск. Возможно, при наличии продвинутой системы поиска, этот аргумент выглядит слабым, но я все же решил оставить возможность отображать дерево как линейный список, при этом удалив дублирующие данную функциональность компоненты.
Читать: https://k245.ru/mvdb/otsech-vsyo-lishnee.html
Клавиши с подогревом
Чего только не придумывают производители для привлечения внимания покупателей, особенно в сегменте игр и развлечений. Клавиатуры и мыши из устройства ввода информации превратились в произведение искусства или выставочный образец высоких технологий, поражая своим внешним видом или техническими возможностями. Но речь пойдет о приёме программирования, который позволит значительно улучить удобство работы с любой программой.
Читать: https://k245.ru/mvdb/klavishi-s-podogrevom.html
Пограничная заставка
Для запуска приложения порой достаточно одного клика. Но иногда время запуска оказывается больше ожидаемых одной-двух секунд, и тогда у пользователя может возникнуть ощущение, что программа зависла и что-то пошло не так. Избежать этого можно, если сократить время до появления первого окна, которое называют заставкой (англ. splash screen).
Для этого все действия по подготовке программы к работе выполняются после отображения заставки. А сама заставка становится границей, отделяющей серые будни пользователя Windows от фантастического мира вашего приложения.
Читать: https://k245.ru/mvdb/pogranichnaya-zastavka.html
Подсветка разметки
Подсветка синтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний. Обычно применяется для облегчения чтения исходного текста компьютерных программ, улучшения визуального восприятия.
Читать: https://k245.ru/mvdb/podsvetka-razmetki.html
Следующая статья со ссылками на "Справочник разработчика" версии 1.3 будет опубликована в блоге автоматически, через несколько дней. Чтобы не пропустить её появление, рекомендую подписаться на новости сайта https://k245.ru
Выравнивание кода
Сначала может показаться, что форматирование исходного текста придумали зануды, но на самом деле выровненный по определенным правилам текст легче воспринимается, а значит на его изучение тратится меньше времени. А время, как вы знаете – самый ценный ресурс.
Читать: https://k245.ru/mvdb/vyravnivanie-koda.html
Выравнивание кода
Сначала может показаться, что форматирование исходного текста придумали зануды, но на самом деле выровненный по определенным правилам текст легче воспринимается, а значит на его изучение тратится меньше времени. А время, как вы знаете – самый ценный ресурс.
спасибо за информацию!!
Производство: учёт и контроль
Просматривая на сайте KWORK заявки на разработку программного обеспечения, я нашел интересный запрос, по видимому от самозанятого или предпринимателя, у которого есть своё небольшое производство: нужна простая программа для анализа рентабельности производственного процесса, по сути – учет затрачиваемых материалов и сравнение с прибылью, получаемой от реализации готовой продукции. Конечно, для полного анализа необходимо также учитывать расходы на электроэнергию, аренду помещения, амортизацию оборудования, налоги и т.д., но в некоторых случаях достаточно контролировать только материалы и готовую продукцию.
Читать: https://k245.ru/mvdb/proizvodstvo-uchyot-i-kontrol.html
My Visual Database → Russian → Курсы обучения и статьи о разработке приложений
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi