Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiНовости

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

heidisql hero image

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

screenshot 2021 05 23 195219

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

  • Вам потребуется RAD Studio Delphi 10.4 или выше. Я использовал Delphi 10.42.
  • Это проще, если у вас установлен клиент управления исходным кодом Git. Я использовал свой любимый клиент GitHub Desktop.
  • Исходный код HeidiSQL основан на двух пользовательских компонентах — исходный код для них включен в загрузку исходного кода HeidiSQL.
  • Вам также следует скачать и установить madExcept.
screenshot 2021 05 23 122652

Установка madExcept

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

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

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

screenshot 2021 05 23 165604

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

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

screenshot 2021 05 23 122534

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

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

  • SynEdit для предоставления области редактора запросов с подсветкой синтаксиса.
  • VirtualTreeView для реализации ряда очень быстрых представлений пользовательского интерфейса в виде дерева и списка.

Установка 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)

screenshot 2021 05 23 131334

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

  • Перейдите в .HeidiSQLкорневую исходную папку. Там есть командный файл под названием «build-res.bat» — запустите этот файл. Он должен пройти без ошибок.
  • Теперь перейдите в папку .HeidiSQLsourcevcl-styles-utils. Там есть файл под названием «CompileResources.bat».
  • Отредактируйте этот файл в текстовом редакторе и удалите пути в начале строки «brcc32.exe», так что там просто написано « brcc32.exe AwesomeFont.rc»
  • Теперь сохраните и запустите этот командный файл.
  • Отредактируйте второй файл «CompileResources_zip.bat» таким же образом, удалив путь; затем сохраните и выполните его.
  • Оба должны запускать компилятор командной строки Borland Resource и создавать файлы .res, необходимые для основного проекта.

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

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

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

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

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

screenshot 2021 05 23 173020
screenshot 2021 05 23 173158

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

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

screenshot 2021 05 23 174217

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

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

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

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

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

screenshot 2021 05 23 175158

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

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

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

screenshot 2021 05 23 183918

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

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

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

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


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


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES