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

Используете ли вы секретную альтернативу SQLite?

pexels cottonbro 4709289

Я знаю лучший способ травмировать разработчика программного обеспечения, который какое-то время использует Delphi. Вы просто показываете им это изображение:

bde config

Менеджер администрирования BDE. Так много «счастливых» часов пытается разрешить сообщения «PDOXUSERS.NET is in use» и узнать все о назначении таких загадочных настроек, как SharedDir и NETDIR. Дрожь. Если вы хотели сохранить базу данных, доступ к которой осуществляется через BDE, на сетевом диске, вам нужно было сделать множество вещей, чтобы убедиться, что она не повреждена. Несмотря на это, разработчики стали экспертами по устранению повреждений базы данных Paradox. Ситуация была довольно мрачной, хотя, если говорить о защите, это было время, когда почти все, что мы сегодня считаем само собой разумеющимся, все еще находилось на начальной стадии; коммутируемое соединение было обычным (и непостоянным), и почти у всех был хотя бы один компакт-диск AOL в качестве подставки для напитков.

Почему люди использовали BDE, если у него было так много проблем?

Что ж, короткий ответ был: это сработало. Фактически, как только вы его настроили, он работал довольно хорошо и был чрезвычайно прост в использовании. Это позволило вам простым способом связываться с различными базами данных, такими как DBase и Paradox. Настолько просто, что Paradox де-факто превратилась в технологию баз данных без SQL вместе с DBase, у которой были собственные проблемы.

SQLite универсальный инструментарий

На арену, предшествовавшую появлению Windows, проскользнул SQLite. С самого начала он разрабатывался как простая база данных, которая позволяла выполнять SQL-подобные команды для набора таблиц, содержащихся в одном «плоском» файле. У него были — и все еще есть — ограничения и причуды, такие как AUTOINC столбцы, отличные от ROWID столбцов, или тот факт, что у него нет собственных типов DATETIME или BOOLEANтипов.


О, и, как и PostgreSQL, имя, которое все еще сбивает меня с толку, когда мне приходится произносить его вслух, имя SQLite раздражает. Смотри равный свет; не следует ли произносить это слово «смотри»?

Несмотря на это, он стал очень популярным.

В чем секрет нативной альтернативы SQLite в Delphi?

На виду у всех на виду — впечатляющая система баз данных, которая почти полностью заменяет SQLite для настольных приложений, написанных на Delphi и C ++ Builder. Эта база данных является абсолютной базой данных от технологического партнера Component Ace.

screenshot 2021 06 06 162255

 

Почему Absolute Database не более известна?


По какой-то причине Absolute Database не захватила воображение разработчиков Delphi так же, как другие системы. Я не совсем уверен, почему это так.

В моей «повседневной работе» мы используем Absolute Database для настольного продукта, который также может быть многопользовательским и с данными, хранящимися на сетевом сервере. Этот настольный продукт имеет около 10 000 индивидуальных установок. Как и в случае с любой базой данных с плоскими файлами, люди совершают сумасшедшие вещи, такие как отключение питания в середине записываемых данных или некоторая злонамеренная злоба, называемая «Обновления Windows», сбивает сервер и перезагружается немного менее изящно, чем предполагалось в документации Windows API. При запуске приложения база данных Absolute Database незаметно восстанавливает и автоматически устраняет любые повреждения, без вмешательства пользователя.

Это испытано и протестировано для нас. Наш типичный клиентский профиль для настольной версии наших продуктов — это малый и средний бизнес и вездесущий «магазин для мам и пап». У нас также есть продукты клиент-сервер, которые используют полнокровные СУБД, такие как MySQL и PostgreSQL, но линейка продуктов, использующая Absolute Database, разработана таким образом, чтобы ее можно было легко установить и использовать для «обычных» пользователей без необходимости в администраторах БД, техническом персонале или, во многих случаях отсутствует надлежащая сеть и соответствующий ИТ-персонал.

Мой список ключевых особенностей Absolute Database

  • Однофайловый для каждой базы данных. Обратите внимание, что ваши приложения могут использовать несколько баз данных одновременно, если вы выберете — мы делаем это с одной для локальных и / или изменчивых временных данных, а другая для общих и сетевых данных.
  • Абсолютная база данных бывает двух видов: персональная версия предназначена для доступа к данным одним пользователем; многопользовательская версия позволяет разработчику установить флажок, разрешающий многопользовательский, многоклиентский общий доступ к одному и тому же файлу базы данных со всеми типами механизмов блокировки, которые вы ожидаете.
  • Он нацелен прямо как замена BDE и альтернатива SQLite без каких-либо драйверов или связывания статических библиотек DLL.
  • Полностью написан на Delphi, и все необходимое для доступа к базе данных встроено прямо в ваш код, поэтому вам нечего развертывать с вашими приложениями, кроме базы данных.
  • В отличие от SQLite поддерживает все типы данных , которые вы ожидаете , такие как DATETIMEBOOLEAN и так далее (оба отсутствуют SQLite), а также ключи, индексы и, ну действительно все в том числе автоинкрементных полей и других подобных норм для реляционной базы данных.
  • Самостоятельный ремонт. В случае обнаружения повреждений система Absolute Database автоматически восстанавливается и восстанавливается.
  • Это TDatabaseTDataSource и другие данные , доступ к совместимому компоненту. Из-за этого все, что может быть связано с a, TDatasource будет работать, например компоненты отчетов, сторонние сетки и так далее.
  • Очень рентабельно, без лицензионных отчислений или сборов за развертывание, и имеет полный доступный исходный код Delphi. Платите один раз, и все готово.
  • Работает почти во всех версиях Delphi, которыми вы могли владеть прямо от Delphi 4 до наших дней. Вам также понадобится только Professional Edition, и она также работает в текущей версии Delphi Community Edition.

Есть ли аналог Absolute Database для настольных ПК?


Существует не только эквивалент почтенного Database Desktop, но и Component Ace также предоставляет для него полный исходный код. Это приложение служит отличным инструментом для создания, запроса и обслуживания баз данных на основе формата Absolute Database, но также является отличным справочным инструментом о том, как получить доступ к данным и выполнять различные неочевидные функции, такие как создание или восстановление таблиц БД во время выполнения.

screenshot 2021 06 06 162603
Абсолютная база данных — инструмент диспетчера баз данных

Где взять абсолютную базу данных

Вы можете найти Absolute Database на официальном сайте Component Ace здесь: https://www.componentace.com/bde_replacement_database_delphi_absolute_database.html

Каковы ключевые особенности Absolute Database и почему она похожа на SQLite?


Как и SQLite, абсолютная база данных хранит все таблицы в одном файле. Этот файл может находиться либо на вашем локальном жестком диске, либо в общей сетевой папке. По умолчанию файлы базы данных Absolute имеют расширение «.abs», хотя на самом деле их можно называть как угодно.

Ключевые функции Absolute Database, перечисленные Component Ace, следующие:

  • Нет BDE; нет DLL
  • Однофайловая база данных
  • Поддержка SQL’92 (DDL и DML)
  • Совместимость со стандартными и сторонними элементами управления базами данных
  • Однопользовательский и многопользовательский режим (файл-сервер)
  • Работает со всеми версиями Windows и не требует обновлений и пакетов обновлений.
  • Сверхбыстрые таблицы в памяти
  • Непревзойденная простота использования
  • Надежное шифрование
  • Сжатие BLOB
  • Бесплатно для личного пользования
  • Доступен полный исходный код
  • Бесплатное распространение

Absolute Database избегает ада DLL

Для меня преимуществом было отсутствие каких-либо дополнительных драйверов или файлов для развертывания с приложением при сохранении полной TDatasource совместимости. Функциональность базы данных скомпилирована прямо в ваше приложение, и, насколько мне известно, это дает дополнительное преимущество: ваши программы защищены от того, что мы называли «адом DLL», когда общие библиотеки DLL драйверов и SDK на главном компьютере обновлялись либо с помощью другое приложение, которое использовало тот же пакет SDK базы данных и библиотеки DLL либо путем обновления или исправления операционной системы.

Благодаря подходу «все в вашем exe», используемому Absolute Database, небольшие накладные расходы на встроенный код доступа к базе данных легко перевешиваются его преимуществом, что означает, что ваше приложение имеет пуленепробиваемый иммунитет от тех видов компьютерных экологических катастроф, которые все еще сохраняются. по сей день для таких ситуаций, как приложения, которые обращаются к MySQL; где что-то идет необъяснимо неправильно при попытке подключиться к серверу MySQL, и после долгого выдергивания волос и аренды одежды выясняется, что в системе имеется более одного «libmysql.dll», и, кроме того, ваше 32-битное приложение пытается загрузить 64-битная библиотека или наоборот.

screenshot 2021 06 06 162929

Абсолютная база данных в среде разработки Delphi RAD Studio

Попробуй бесплатно

Персональная, не многопользовательская версия Absolute Database бесплатна для личного использования, поэтому вам не нужно верить мне на слово (хотя Component Ace не имеет прямого отношения ко мне и не имеет никакого отношения к этой статье — мои взгляды мой собственный). Попробуйте сравнить Absolute Database для себя с SQLite и посмотрите, как вы ладите. Если вы хотите пойти дальше, вам, вероятно, придется заплатить за коммерческую версию, которая добавляет такие вещи, как доступ к полному исходному коду и возможность работы в многопользовательском режиме, но к тому времени вы, как и я, можете задаться вопросом, почему это лучшая секретная база данных в Интернете.


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