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

Извлечение, преобразование, загрузка — волшебство 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 — это сила, стоящая за одним из самых популярных в мире программ. Почему бы не попробовать его самому и не посмотреть, что оно может для вас сделать?


What's New for RAD Studio 11

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

Похожие сообщения
DelphiDeveloper InterviewsInterviewНовости

Каково быть разработчиком Джо К. Хехт?

CodeRAD StudioНовости

Почему вам определенно стоит писать меньше кода в этом году

DelphiDeveloper InterviewsInterviewНовости

Каково быть разработчиком Сунил Кумар Арора?

C++DelphiRAD StudioНовости

Настольные компьютеры - непревзойденный источник производительности

Leave a Reply

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

IN THE ARTICLES