Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Извлечение, преобразование, загрузка — волшебство HeidiSQL

heidisql hero image

HeidiSQL — чрезвычайно успешный инструмент управления базами данных с открытым исходным кодом. Помимо того, что он чрезвычайно полезен для управления базами данных MySQL, SQL Server, PostgreSQL и SQLite, он также имеет открытый исходный код, и этот исходный код написан на Delphi. Мы уже делали краткий обзор этого раньше, но в тот раз мы коснулись лишь поверхности этого чудесно искусного примера программирования на Delphi в лучшем виде. Сам код содержит действительно отличные методы. Давайте посмотрим на это поближе.

Что вам понадобится для компиляции кода HeidiSQL

Установка madExcept

Если вы не сталкивались с madExcept до того, как пропустите! Это действительно отличный инструмент для перехвата программных исключений, возникающих во время работы вашей программы, и создания отчетов о них. Веб-сайт объясняет более подробно, но я настоятельно рекомендую его.

  1. Перейдите на http://www.madshi.net/madExceptDescription.htm.
  2. Скачайте и запустите установщик
  3. Убедитесь, что вы отметили madExcept v5. Программа установки немного сбивает с толку — нажмите на версию 5, и она выберет ее для установки (по умолчанию не устанавливаются версии 4 или 5, которые меня раньше сбивали с толку!)

После правильной установки в меню инструментов RAD Studio будет добавлен дополнительный пункт.

Получение исходного кода HeidiSQL

Перейдите на сайт HeidiSQL и нажмите кнопку «Загрузить источник». Вы перейдете по следующей ссылке: https://github.com/HeidiSQL/HeidiSQL

Установка необходимых сторонних компонентов

HeidiSQL полагается на два дополнительных компонента. Обратите внимание, что оба компонента очень популярны, поэтому убедитесь, что они еще не установлены. Если они у вас не установлены, следуйте приведенным ниже инструкциям. Необходимые предметы:

Установка SynEdit

Перейдите к ./HeidiSQL/components/synedit/Packages/Delphi10.4/SynEdit.groupprojпроекту и загрузите его. Щелкните правой кнопкой мыши и скомпилируйте SynEdit_R проект, а затем щелкните правой кнопкой мыши и выберите «установить» для SynEdit_D пакета времени разработки.

Установка VirtualTreeView

Перейдите к ./HeidiSQL/components/virtualtreeview/packages/Delphi10.4/VirtualTrees.groupprojи загрузите его. Щелкните правой кнопкой мыши и скомпилируйте VirtualTreesR пакет среды выполнения. Теперь щелкните правой кнопкой мыши и выберите «установить» для VirtualTreesD пакета времени разработки.

Компиляция файлов требуемых ресурсов (.res)

Есть небольшой пробел в шагах, которые я видел при компиляции HeidiSQL из исходного кода. Есть несколько файлов ресурсов .rc для таких вещей, как значки и шрифты, и нигде не было сказано, что их нужно скомпилировать. Возможно, я их пропустил (я пытался скомпилировать различные групповые проекты), и в этом случае дайте мне знать в комментариях, и я обновлю этот пост с исправлением, но до тех пор сделайте следующее:

Открытие и компиляция исходного кода HeidiSQL Delphi

Итак, мы готовы открыть основной проект HeidiSQL и сможем скомпилировать его без ошибок!

Найдите ./HeidiSQL/packages/Delphi10.4и откройте проект « heidisql.dproj».

Он должен открываться без ошибок.

Если вы нажмете CTRL+F9кнопку build, он соберет исходный код и создаст вашу собственную копию HeidiSQL exe, которую вы должны найти в папке .HeidiSQLout.

Маленькие жемчужины, обнаруженные в исходном коде HeidiSQL

Код HeidiSQL Delphi — это рог изобилия интересных методов, маленьких уловок и приемов.

Например, недавно появилась поддержка пользовательских стилей. Стили встраиваются в приложение с помощью скомпилированного ресурса .res. Если вы перейдете к источнику проекта (главное меню, проект, просмотр исходного кода). Прокрутите вниз, и вы увидите строку:{$R ....resstyles.RES}

Он по-прежнему использует TStyleManager для безопасной загрузки этих стилей, но они загружаются из внутреннего ресурса. Преимущество этого заключается в том, что файлы стилей не должны поставляться с приложением, скомпилированным конечным пользователем, но недостатком является то, что приложение ограничено встроенным выбором. Лично, когда я делаю это сам, я предпочитаю искать внешние файлы стилей как часть процесса, который позволяет людям предоставлять новые стили, просто помещая их в назначенную папку, которую мой код сканирует и загружает в список. Тем не менее, код HeidiSQL склоняется к тому, чтобы делать все по-своему и стараться быть максимально экономичным, что, на мой взгляд, является замечательным подходом.

HeidiSQL — многоязычный

HeidiSQL может «разговаривать» с несколькими основными системами реляционных баз данных. Что примечательно, так это то, что он делает это без использования каких-либо популярных наборов компонентов базы данных, таких как FireDAC, AnyDAC, MyDAC и т. Д.

Если мы перейдем к модулю dbConnection, а затем к методу CreateConnection, мы увидим следующий код:

Это ключевой момент, в котором HeidiSQL может так ловко использовать различные диалекты SQL.

С этого момента HeidiSQL выполняет SQL-запросы с минимальными изменениями. Это замечательно сжатый фрагмент кода, перекрывающий великолепно сжатый стиль программирования. Разработчик Ансгар Беккер действительно знает свое дело. Я всегда говорил, что если вы достаточно долго читаете код другого программиста, вы действительно получите представление о уме, который его создал.

Другие скрытые жемчужины

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

Существует также настраиваемая программа обновления, которая может проверять и запускать автоматическое обновление исполняемого файла. См. Подробности в разделе «UpdateCheck».

HeidiSQL также имеет отличную возможность экспорта, позволяющую пользователям извлекать результаты своих SQL-запросов и экспортировать их во всевозможные форматы, включая слегка эзотерический LaTex и WikiMarkup. Именно такая возможность запускать запросы для извлечения данных, почти независимо от технологии сервера баз данных SQL, показывать их в удобном для пользователя виде, преобразовывать и экспортировать их во что-то еще, что очень быстро сделало HeidiSQL инструментом для управления базами данных goto для многих. люди.

Проект HeidiSQL принимает пожертвования на своей официальной веб-странице здесь: https://www.heidisql.com/donate.php — это определенно достойный проект Delphi.


RAD Studio Delphi — это сила, стоящая за одним из самых популярных в мире программ. Почему бы не попробовать его самому и не посмотреть, что оно может для вас сделать?

Exit mobile version