Delphi. SQLite. FireDac. Обвязка для TreeView

Опять о «деревьях»…
🙂

Но тем не менее, тема все еще актуальна, поскольку в составе стандартного набора компонентов Delphi все еще нет компонента типа TTreeView, но ориентированного на таблицы БД (что-то вроде DBTreeView).

В этой статье вкратце рассматривается вариант обвязки (для TTreeView), ориентированной на отображение таблицы базы данных (SQLlite), содержащей иерархически структурированные строки.
Имя файла: __DBTreeView_FireDac.pas.

См. здесь.

О применении библиотеки FastScript в своих проектах. Цикл статей. Основные тезисы

Используемые сокращения:
FS  – FastScript;
FSI – Интерпретатор скриптов (в части Обвязки для FastScript);
GUI – Графический Пользовательский Интерфейс;
БД  – База Данных;
ИС  – Информационная Система.

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


Существенная часть задач, где может быть применена библиотека FastScript,
это автоматизация выполнения различного рода прикладных (специфичных) задач конечного Пользователя − самим же Пользователем (в рамках эксплуатируемой ИС).
При этом, Пользователь (даже очень продвинутый), как правило НЕ является программистом со «всеми вытекающими». Чем более дружественным (комфортным) для него будет инструментарий, тем эффективнее он будет его применять.
Одним из факторов («облегчающих жизнь» конечному Пользователю), является максимально возможная локализация программного инструментария не только в части GUI, но и в части идентификаторов функций, процедур, переменных и констант (что при использовании FastScript легко реализуемо).


В силу того, что возможности библиотеки FastScript существенно велики, а «аппетит растет во время еды», то через довольно-таки небольшой промежуток времени количество «специальных» функций (которые добавляет Программист) может стать знАчимо «большим» (особенно, в «больших» ИС).
И в этом случае необходимо сразу предусматривать возможность группировки дополнительного функционала по отдельным модулям (которые будут подключаться по мере необходимости в процессе разработки конкретного скрипта или группы скриптов).


В ряде случаев, когда FastScript применяется в гибких ИС, тексты FS-скриптов хранятся в таблицах БД и загружаются для выполнения периодически, согласно принятого регламента, или ситуативно, по «требованию» внешних инициаторов информационного обмена.
«Требования» инициаторов информационного обмена могут включать некие исходные данные, которые должны быть учтены при выполнении FS-скрипта (входные параметры FSI), и возвращаемые данные, полученные в результате выполнения FS-скрипта (вЫходные параметры FSI).
Входные параметры FSI могут быть преобразованы в константы FastScript,
а вЫходные параметры FSI – в переменные FastScript.
Т.е., некий функционал (из состава Обвязки) конвертирует поступившие входные параметры – в константы FastScript, а вЫходные параметры – в переменные FastScript.
А затем, соответствующий FS-скрипт выгружается из БД и (используя компонент TfsScript библиотеки FastScript) запускается на выполнение. После того, как FS-скрипт выполнен, значения соответствующих переменных конвертируются Обвязкой в вЫходные параметры (для предоставления их инициатору информационного обмена в соответствии с требованиями).


В ряде случаев, когда FastScript применяется в гибких, объектно-ориентированных, распределенных (в том числе и иерархически) ИС, тексты FS-скриптов однозначно хранятся в соответствующих таблицах БД и участвуют в миграции данных в составе информационных потоков, предусмотренных соответствующими регламентами.
Кроме этого, определенные FS-скрипты могут реализовывать выполнение одних и тех же алгоритмов, но с специфическими исходными данными (зависящими от конкретных узлов распределенной сети ИС).
Как следствие:
идентификация FS-скриптов должна носить глобальный характер (для всей сети ИС);
процесс выгрузки взаимосвязанных FS-скриптов не должен быть привязан к конкретностям файловых систем.


Список статей цикла:


См., также, здесь (PDF-документ).

О применении библиотеки FastScript в своих проектах. Часть-2. Входные и вЫходные параметры FS-скрипта (при информационном обмене с внешними инициаторами)

Цикл статей по программированию в среде Delphi (ориентирован на FastScript).

См. продолжение:

О применении библиотеки FastScript в своих проектах. Часть-2. Входные и вЫходные параметры FS-скрипта (при информационном обмене с внешними инициаторами)

Обновление раздела «Документы (скачать)»

Открыть раздел

Программа SQLite_Admin. Скачать

Создание SQLite баз данных (простейший вариант, не требует установки, нигде себя не прописывает).

ОС: Windows.
Версия: 1.03.
Статус: Freeware (свободное распространение и использование).

Открыть страницу программы…

Delphi. БД. Потенциально полезный функционал

См., также, здесь и здесь

Delphi. Базы Данных. SQLite. По следам статьи «Полноценный upper (или lower) в SQLite при работе с unicode»

Автор указанной выше статьи не известен, к сожалению.
Ссылка на статью: https://habr.com/ru/sandbox/98493/


При разработке ПО в среде Delphi зачастую возникает необходимость хранения данных в какой-либо локальной БД.

СУБД SQLite вполне подходит для этих целей, но в некоторых случаях проблема, обозначенная в указанной статье (см. выше), существенно усложняет ее использование.
Суть проблемы в том, что функции UPPER и LOWER в SQLite не умеет работать с кириллицей (под кириллицей в данном документе подразумевается русский алфавит).
В статье (см. выше) приведен конкретный, работающий вариант решения этой проблемы.
Воспользовавшись идеей и конкретным примером, приведенным в статье (см. выше), решил реализовать это применительно к среде Delphi (а если конкретно, то Delphi 10.2 Tokyo).

Открыть…

PostgreSQL. Простой интерпретатор скриптов (plpgsql). Новый пример применения

Пример-8. Запись информации в поля таблиц базы данных. Открыть…

См., также, здесь и здесь.

PostgreSQL. Простой интерпретатор скриптов (plpgsql). Новый пример применения

Пример-7. Чтение информации из полей таблиц базы данных. Открыть…

См., также, здесь и здесь.

PostgreSQL. Простой интерпретатор скриптов (plpgsql)

Новый раздел. Открыть…

Интерпретатор скриптов может быть полезен в том случае, если формируется адаптивная (максимально гибкая) информационная система.

PostgreSQL. Потенциально полезные функции. Временные таблицы

Временные таблицы — это существенно мощный инструмент для разработчика.
Особенно в том случае, если формируется адаптивная (максимально гибкая) информационная система.

См. здесь и здесь…

PostgreSQL. Потенциально полезные функции. Шифрование…

Иной раз возникает необходимость простого шифрования текста при хранении его в БД… .

См. здесь и здесь…

PostgreSQL. Начат новый информационный блок

Потенциально полезные функции. Контроль и преобразование значений…

См. здесь… и здесь…

Arduino. ТехноСфера. Начало…

«А не замахнуться ли нам на Вильяма, понимаете ли, нашего Шекспира?» (цитата из фильма «Берегись автомобиля») …
См. здесь…