Re: Курсы обучения и статьи о разработке приложений

5. Сортировки действуют только в пределах каждого отдельного запроса. - ?

Если речь о ORDER BY ... то только в самом конце всех запросов, после всех UNION

127

Re: Курсы обучения и статьи о разработке приложений

sparrow wrote:

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

выдаст

Алеся
Вася
Коля
Маша
Света
Юля
Визуальное программирование: блог и телеграм-канал.

128 (edited by sparrow 2022-07-14 17:04:25)

Re: Курсы обучения и статьи о разработке приложений

Ну ладно )


Ничего не имею против подзапросов но вот ваш пример и правильный в действии в MVD для SQLite


И пример использования https://www.w3schools.com/sql/sql_union.asp

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
Post's attachments

Attachment icon union.zip 332.67 kb, 136 downloads since 2022-07-14 

129

Re: Курсы обучения и статьи о разработке приложений

sparrow wrote:

Ну ладно )


Ничего не имею против подзапросов но вот ваш пример и правильный в действии в MVD для SQLite


И пример использования https://www.w3schools.com/sql/sql_union.asp

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

Ваша правда - практика всегда лучше рассуждений. Пожалуй, надо исправить моё неверное утверждение насчет сортировок в пределах запроса. Благодарю за науку.

Визуальное программирование: блог и телеграм-канал.

130

Re: Курсы обучения и статьи о разработке приложений

Кстати, независимая сортировка отдельных выборок возможна в MySQL, но записывается чуть иначе:

( SELECT name FROM table_1 ORDER BY name )
UNION
( SELECT name FROM table_2 ORDER BY name )

В SQLite такая запись недопустима.

Визуальное программирование: блог и телеграм-канал.

131 (edited by sparrow 2022-07-15 10:12:45)

Re: Курсы обучения и статьи о разработке приложений

На онлайн сервере 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, он оптимизируется, потому что в любом случае не имеет никакого эффекта.

Как то так sad

132

Re: Курсы обучения и статьи о разработке приложений

Три главные кнопки


https://k245.ru/wp-content/uploads/2022/07/Tri-bogatyrya.jpg


Три самые популярные кнопки в приложениях, создаваемых в среде разработки My Visual Dtabase,  - это кнопки редактирования табличных данных: добавление, изменение и удаление записи. Обычно они находятся рядом с каждой таблицей, которую пользователь намеревается редактировать. Но в нашем приложении кнопок редактирования всего три, поэтому они будут не обычными, а "богатырскими".


Читать: https://k245.ru/mvdb/tri-glavnye-knopki.html

Визуальное программирование: блог и телеграм-канал.

133

Re: Курсы обучения и статьи о разработке приложений

Гений кроется в деталях.


https://k245.ru/wp-content/uploads/2022/07/Mikelandzhelo.jpg


Последняя статья из цикла "ClassExplorer", которая рассказывает о некоторых вспомогательных процедурах и функциях.


Читать: https://k245.ru/mvdb/genij-kroetsya-v-detalyah.html

Визуальное программирование: блог и телеграм-канал.

134

Re: Курсы обучения и статьи о разработке приложений

Эффект бабочки


https://k245.ru/wp-content/uploads/2022/07/Pavlinij-glaz.jpg


Завершив работу над первой версией программы "ClassExplorer", я решил немного усовершенствовать её: разнести программный код по отдельным модулям, а также добавить механизм управления стилями. Но эти казалось бы небольшие изменения создали кучу хлопот.


Читать:  https://k245.ru/mvdb/effekt-babochki.html

Визуальное программирование: блог и телеграм-канал.

135

Re: Курсы обучения и статьи о разработке приложений

Формы из пробирки

https://k245.ru/wp-content/uploads/2022/07/formy.jpg


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


Читать:  https://k245.ru/mvdb/formy-iz-probirki.html

Визуальное программирование: блог и телеграм-канал.

136

Re: Курсы обучения и статьи о разработке приложений

Мне интересно, почему в вашем коде для создания динамической формы (или других объектов) вы не «освобождаете» экземпляры при закрытии формы.

Я заметил, что 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.

On a clear disk you can seek forever

137

Re: Курсы обучения и статьи о разработке приложений

Дело в том, что форма умеет освобождать все компоненты, которые ей принадлежат. При создании компонента в конструкторе 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.

Визуальное программирование: блог и телеграм-канал.

138

Re: Курсы обучения и статьи о разработке приложений

Традиция скрывать форму после завершения работы с ней вместо того, чтобы удалить её, восходит к тем временам, когда компьютеры были медленные, и создание формы занимало кучу времени. Поэтому формы создавались при запуске приложения и удалялись только по завершению программы. Другой аргумент для такого решения состоит в том, что создание/разрушение объектов приводит к фрагментации памяти. И, хотя программы, созданные на Дельфи, используют свой менеджер памяти, который снижает фрагментацию памяти операционной системы, разработчики традиционно придерживаются данной стратегии.


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.

Визуальное программирование: блог и телеграм-канал.

139

Re: Курсы обучения и статьи о разработке приложений

Вопрос к пользователям ClassExplorer. Сейчас примеры могут включать форматированный текст и картинки. Но форматировать текст нужно вручную.
https://k245.ru/wp-content/uploads/2022/07/5-1024x604.png
Насколько актуально добавить автоматическое форматирование текста и подсвечивание ключевых слов для выделенного фрагмента текста?  И нужно ли хранение изображений или достаточно подсветки кода, как это сделано в программе Snippet Manager?

http://i.imgur.com/8eaGzZY.png

Визуальное программирование: блог и телеграм-канал.

140 (edited by pavlenko.vladimir.v 2022-07-31 03:01:58)

Re: Курсы обучения и статьи о разработке приложений

k245 wrote:

Вопрос к пользователям ClassExplorer. Сейчас примеры могут включать форматированный текст и картинки. Но форматировать текст нужно вручную.
https://k245.ru/wp-content/uploads/2022/07/5-1024x604.png
Насколько актуально добавить автоматическое форматирование текста и подсвечивание ключевых слов для выделенного фрагмента текста?  И нужно ли хранение изображений или достаточно подсветки кода, как это сделано в программе Snippet Manager?

http://i.imgur.com/8eaGzZY.png

Очень даже актуально, с форматированием совсем по другому воспринимается.. подсветка кода помогает читать этот код. С картинкой даже не знаю , мне не обязательно.
часто получаю такую ошибку
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8906&download=0

Post's attachments

Attachment icon Без имени.png 64.96 kb, 70 downloads since 2022-07-31 

141

Re: Курсы обучения и статьи о разработке приложений

Вот и я теперь сомневаюсь, нужны ли картинки... только веса базе прибавляют smile


Кстати, RTF, который используется данным компонентом по умолчанию, тоже не айс. Зато у него есть свой формат, который, судя по всему, сжатый. Но нет методов чтения/записи в базу, только через файл.


Можно попробовать подсвечивать "на лету", видел на форуме тему в англоязычной ветке (подсветка синтаксиса SQL), но автор жалуется на низкую производительность скриптов. Но попробовать можно smile Тогда можно будет добавить в систему поиска поиск в исходниках!


А ещё добавить возможность по клику в исходнике открывать справочный раздел по классу или типу. Например, клик с зажатой клавишей Ctrl.

Визуальное программирование: блог и телеграм-канал.

142

Re: Курсы обучения и статьи о разработке приложений

pavlenko.vladimir.v wrote:

часто получаю такую ошибку
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8906&download=0

Согласен, код ещё сырой, ошибок много, буду исправлять...

Визуальное программирование: блог и телеграм-канал.

143

Re: Курсы обучения и статьи о разработке приложений

Отсечь всё лишнее

https://k245.ru/wp-content/uploads/2022/08/myslitel.jpg

Подобно скульптору Родену, программисты берут глыбу программного кода и отсекают от неё все лишнее. При этом им приходится очень много размышлять, так как каждое “отсечение” хотя и делает код более изящным, но увеличивает сложность всей композиции.


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


Читать: https://k245.ru/mvdb/otsech-vsyo-lishnee.html

Визуальное программирование: блог и телеграм-канал.

144

Re: Курсы обучения и статьи о разработке приложений

Клавиши с подогревом

https://k245.ru/wp-content/uploads/2022/08/Klavishi-s-podogrevom.jpg


Чего только не придумывают производители для привлечения внимания покупателей, особенно в сегменте игр и развлечений. Клавиатуры и мыши из устройства ввода информации превратились в произведение искусства или выставочный образец высоких технологий, поражая своим внешним видом или техническими возможностями. Но речь пойдет о приёме программирования, который позволит значительно улучить удобство работы с любой программой.


Читать: https://k245.ru/mvdb/klavishi-s-podogrevom.html

Визуальное программирование: блог и телеграм-канал.

145

Re: Курсы обучения и статьи о разработке приложений

Пограничная заставка


https://k245.ru/wp-content/uploads/2022/08/Pogranichnaya-zastava.jpg


Для запуска приложения порой достаточно одного клика. Но иногда время запуска оказывается больше ожидаемых одной-двух секунд, и тогда у пользователя может возникнуть ощущение, что программа зависла и что-то пошло не так. Избежать этого можно, если сократить время до появления первого окна, которое называют заставкой (англ. splash screen).


Для этого все действия по подготовке программы к работе выполняются после отображения заставки. А сама заставка становится границей, отделяющей серые будни пользователя Windows от фантастического мира вашего приложения.


Читать:  https://k245.ru/mvdb/pogranichnaya-zastavka.html

Визуальное программирование: блог и телеграм-канал.

146

Re: Курсы обучения и статьи о разработке приложений

Подсветка разметки

https://k245.ru/wp-content/uploads/2022/08/Vzlyotnaya-polosa.jpg


Подсветка синтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний. Обычно применяется для облегчения чтения исходного текста компьютерных программ, улучшения визуального восприятия.


Читать: https://k245.ru/mvdb/podsvetka-razmetki.html

Визуальное программирование: блог и телеграм-канал.

147

Re: Курсы обучения и статьи о разработке приложений

Следующая статья со ссылками на "Справочник разработчика" версии 1.3 будет опубликована в блоге автоматически, через несколько дней. Чтобы не пропустить её появление, рекомендую подписаться на новости сайта https://k245.ru

https://k245.ru/wp-content/uploads/2022/06/shutterstock_118960624.jpg

Визуальное программирование: блог и телеграм-канал.

148

Re: Курсы обучения и статьи о разработке приложений

Выравнивание кода


https://k245.ru/wp-content/uploads/2022/08/Vyravnivanie.jpg


Сначала может показаться, что форматирование исходного текста придумали зануды, но на самом деле выровненный по определенным правилам текст легче воспринимается, а значит на его изучение тратится меньше времени. А время, как вы знаете – самый ценный ресурс.


Читать: https://k245.ru/mvdb/vyravnivanie-koda.html

Визуальное программирование: блог и телеграм-канал.

Re: Курсы обучения и статьи о разработке приложений

k245 wrote:

Выравнивание кода


https://k245.ru/wp-content/uploads/2022/08/Vyravnivanie.jpg


Сначала может показаться, что форматирование исходного текста придумали зануды, но на самом деле выровненный по определенным правилам текст легче воспринимается, а значит на его изучение тратится меньше времени. А время, как вы знаете – самый ценный ресурс.


Читать: https://k245.ru/mvdb/vyravnivanie-koda.html

спасибо за информацию!!

150

Re: Курсы обучения и статьи о разработке приложений

Производство: учёт и контроль


https://k245.ru/wp-content/uploads/2022/08/Proizvodstvo.jpg


Просматривая на сайте KWORK заявки на разработку программного обеспечения, я нашел интересный запрос, по видимому от самозанятого или предпринимателя, у которого есть своё небольшое производство: нужна простая программа для анализа рентабельности производственного процесса, по сути – учет затрачиваемых материалов и сравнение с прибылью, получаемой от реализации готовой продукции. Конечно, для полного анализа необходимо также учитывать расходы на электроэнергию, аренду помещения, амортизацию оборудования, налоги и т.д., но в некоторых случаях достаточно контролировать только материалы и готовую продукцию.


Читать: https://k245.ru/mvdb/proizvodstvo-uchyot-i-kontrol.html

Визуальное программирование: блог и телеграм-канал.