-
MY PROJECTS
-
Recent Posts
- SQL.How can you compare two nullable values safely, and how does IS DISTINCT FROM differ from <>?
- SQL.How are NULL values ordered by ORDER BY, how do defaults differ between databases, and how can you control their placement?
- SQL.How does NULL propagate through arithmetic expressions, and how can COALESCE and NULLIF help handle missing values and division by zero?
- SQL.How does NULL affect join conditions, and why can filtering the right-hand table in WHERE remove unmatched rows from a LEFT JOIN?
- SQL.How do GROUP BY and DISTINCT treat NULL values, even though NULL = NULL evaluates to UNKNOWN?
- SQL.How do aggregate functions handle NULL, and what is the difference between COUNT(*), COUNT(column), and COUNT(DISTINCT column)?
- SQL.How does NULL affect IN and NOT IN, and why can NOT EXISTS be a safer choice when a subquery returns nullable values?
- SQL.How do WHERE, HAVING, and CHECK constraints treat conditions that evaluate to UNKNOWN?
- SQL.Why do column = NULL and column <> NULL not work as expected, and when should you use IS NULL and IS NOT NULL?
- SQL.What is SQL’s three-valued logic (TRUE, FALSE, UNKNOWN), and how do AND, OR, and NOT behave with UNKNOWN?
- ChromeDevTools.Watch all failed requests
- SQL.What are domain types (or constraints on data types), and how do they help enforce data correctness?
- SQL.How does SQL handle comparisons between different data types (for example, string vs number), and why is this dangerous?
- SQL.What is the difference between DATE, TIME, TIMESTAMP, and TIMESTAMPTZ, and which one should be used for business events?
- SQL.How do numeric types like INTEGER, BIGINT, DECIMAL, and FLOAT differ in terms of precision and use cases?
- SQL.What problems can arise from implicit type casting in SQL, and how can it affect indexes?
- SQL.How does NULL differ from 0, an empty string, or FALSE in SQL?
- SQL.What is the difference between CHAR, VARCHAR, and TEXT, and when would you choose each?
- SQL.What is MVCC ?
- SQL.What is AutoVacuum Postgres ?
Categories
- Aptana
- Azure
- C#
- DataSnap
- DBExpress
- Delphi
- Delphi и сети
- Delphi. Язык программирования
- ExtJS
- FastReport
- FireDAC
- FireMonkey
- GIT
- ICS
- IDE
- IIS
- Indy
- InnoSetup
- javascript
- jQuery
- JSON
- LiveBindings
- MSHTML
- MySQL
- PHP
- REST
- Ribbons
- SMS
- SQL инструкции
- SVN
- TRichView
- UniGui
- WebBroker
- WinAPI
- Windows
- Алгоритмы
- Без рубрики
- Деревья
- Ищу ответ
- Компонентостроение
- Мои компоненты
- Начальный уровень
- Обработка исключений
- Парсинг
- Потоки(Threads)
- Регулярные выражения
- Тестирование приложений
Category Archives: Деревья
Delphi. Иерархические данные. DBTreeView своими руками. Чекбоксы в отдельном потоке
Решил добавить многопоточности в дерево. Cтолкнулся с тем, что при большом количестве потомков у узла, больше 500, начинаются тормоза с проставлением галочек у всех потомков. Я запрограммировал так, что при нажатии на узел родителя, если у него есть узлы дети, … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Чекбоксы в отдельном потоке
Delphi. Иерархические данные. DBTreeView своими руками. Динамическая подгрузка веточек
Идея динамической подгрузки веточек-узлов пришла ко мне, когда я стал добавлять по 500 узлов в узлы родители, и при загрузке дерева стала ощущаться задержка. Я так и представил разрастающиеся базы пользователей и эти долгие загрузки со всеми последствиями. Оно и … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Рекурсивное удаление поддерева
В связи с тем, что переделал алгоритм загрузки данных для дерева до динамического, пришлось переделать алгоритм удаления из базы. При динамической подгрузке в TreeView видны узлы лишь до уровня, открытого пользователем. Всё что глубже – просто не загружено. Поэтому как … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Рекурсивное удаление поддерева
Delphi. Иерархические данные. DBTreeView своими руками. Добавляем значки папок и файлов
Решил немного позаниматься украшательством – добавить значки папок и файлов, получилось вот что… Пробовал разными способами, но получилось вот так
Delphi. Иерархические данные. DBTreeView своими руками. Приведение CheckBoxes в нормальное состояние
Пока не нашел свойство DisplayRect у TTreeNode, не знал как быть с чекбоксами, а то поставить то я их поставил, а вот работали они не совсем адекватно. То есть при нажатии на текст, скажем – нажимались и чекбоксы, а мне нужно было … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Удаляем несколько узлов с помощью Checkboxes
В данной статье посмотрим на алгоритм удаления при помощи Checkboxes. Суть такая же, при удалении узла нужно удалить всех его детей. Но реализация немного другая, отличная от той, где мы удаляли через Selection. Алгоритм, прямо скажу, не быстрый, но рабочий. … Continue reading
Delphi. TreeView. Способы обхода дерева
Способов обхода дерева – огромное количество, я приведу здесь самые простые. Обход всего дерева от начала до конца
|
1 2 3 4 5 6 7 8 |
... Node:=TreeView.Items.GetFirstNode; repeat // DoSomething with Tree for Example // Node.Text:='Was here during travesing'; Node:=Node.GetNext; until not Assigned(Node) ; ... |
Обход в глубину узла 1
|
1 2 3 4 5 6 7 8 |
Procedure TMainForm.WalkParentAndAllChildren (Node:TTreeNode); var i:integer; begin memo1.Lines.Add(Node.Text); for i := 0 to Node.Count-1 do WalkParentAndAllChildren(Node[i]); // Recurisively goes all children end; |
Данная процедура обходит родителя и всех детей – рекурсивно. Вот ссылка на сайт, где взял … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. TreeView. Способы обхода дерева
Delphi. Иерархические данные. DBTreeView своими руками. Добавляем Checkboxes
Продолжаем серию DBTreeView своими руками. В данной статье добавим Checkboxes к элементам дерева при помощи свойства StateIndex. Добавим CheckBoxes и свяжем их статус с базой данных. Скажу сразу, что Checkboxes здесь это картинки 16*16 и можно организовать любые другие картинки, например … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Добавляем Checkboxes
Delphi. Иерархические данные. DBTreeView своими руками. Удаление нескольких узлов
В данной статье посмотрим на удаление данных из дерева, поддерживающего связку с базой данных. Мы уже удаляли один узел, там нужно было удалить всех детей узла, в базе и в дереве, и только потом удалить сам узел. В данном примере … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Переподчинение узлов
Данная статья развивает предыдущие 2 из цикла DBTreeView своими руками и показывает как можно переподчинить узлы. Статьи основаны на книге Д.Осипова Delphi и базы данных c моими небольшими изменениями. Как видно, переподчинение произошло и в базе данных.