Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeCodeDatabaseDelphiRAD Studio

Verwenden Sie die geheime Alternative zu SQLite?

pexels cottonbro 4709289

Ich kenne den besten Weg, einen Softwareentwickler zu traumatisieren, der seit einiger Zeit Delphi verwendet. Du zeigst ihnen einfach dieses Bild:

bde config

Der BDE-Verwaltungsleiter. So viele „glückliche“ Stunden, in denen versucht wird, die Meldungen „PDOXUSERS.NET wird verwendet“ aufzulösen und alles über den Zweck geheimnisvoller Einstellungen wie SharedDir und NETDIR zu erfahren. Schaudern. Wenn Sie eine Datenbank, auf die über die BDE zugegriffen wird, auf einem Netzlaufwerk speichern wollten, mussten Sie eine Menge Dinge tun, um sicherzustellen, dass sie nicht beschädigt wurde. Trotzdem wurden Entwickler zu Experten bei der Reparatur von Paradox-Datenbankbeschädigungen. Die Dinge waren ziemlich düster, obwohl dies eine Zeit war, in der fast alles, was wir heute für selbstverständlich halten, noch in den Kinderschuhen steckte; Einwahl war üblich (und unregelmäßig) und fast jeder hatte mindestens eine AOL-CD als Getränkeuntersetzer.

Warum nutzten die Leute die BDE, wenn sie so viele Probleme hatte?

Nun, die kurze Antwort war: Es hat funktioniert. Sobald Sie es konfiguriert hatten, funktionierte es ziemlich gut und war extrem einfach zu bedienen. Es ermöglichte Ihnen, auf einfache Weise mit verschiedenen Datenbanken wie DBase und Paradox zu verknüpfen. So einfach, dass Paradox zusammen mit DBase de facto zu einer Nicht-SQL-Datenbanktechnologie wurde, die ihre eigenen Probleme hatte.

SQLite das universelle Toolkit

In diese Pre-Windows-Arena schob sich SQLite ein. Es wurde von Anfang an als einfache Datenbank entwickelt, die es ermöglicht, SQL-ähnliche Befehle für eine Reihe von Tabellen auszuführen, die in einer einzigen „flachen“ Datei enthalten sind. Es hatte – und hat immer noch – Einschränkungen und Macken wie AUTOINC Spalten, die nicht mit ROWID Spalten identisch sind, oder die Tatsache, dass es keine nativen DATETIME oder BOOLEANTypen hat.


Oh, und wie PostgreSQL, ein Name, der mich immer noch aus der Fassung bringt, wenn ich ihn laut aussprechen muss, ist der Name SQLite nervig. Seequal-Licht; sollte es nicht „seequalit“ ausgesprochen werden?

Trotzdem ist es massiv populär geworden.

Was ist die geheime native Delphi-Alternative zu SQLite?

Offensichtlich versteckt sich ein ziemlich beeindruckendes Datenbanksystem, das SQLite für Desktop-Apps, die in Delphi und C++ Builder geschrieben wurden, fast vollständig ersetzt. Diese Datenbank ist Absolute Database von Technology Partner Component Ace.

screenshot 2021 06 06 162255

 

Warum ist Absolute Database nicht bekannter?


Aus irgendeinem Grund hat Absolute Database die Fantasie der Delphi-Entwickler nicht ganz so beflügelt wie andere Systeme. Ich bin mir nicht ganz sicher, warum das so ist.

In meinem ‚Tagesjob‘ verwenden wir Absolute Database für ein Desktop-Produkt – das auch Mehrbenutzer sein kann und die Daten auf einem Netzwerkserver gespeichert sind. Dieses Desktop-Produkt hat fast 10.000 einzelne Installationen. Wie bei jeder Flat-File-Datenbank machen Leute verrückte Dinge, wie zum Beispiel Stromausfälle während des Schreibens von Daten oder eine böswillige Bösartigkeit namens „Windows Updates“, die den Server überfällt und etwas weniger elegant neu startet, als dies die Windows-API-Dokumentation vermuten lässt. Beim Starten der App erholt sich die Absolute Database-Datenbank automatisch und repariert automatisch alle Schäden, ohne dass ein Benutzereingriff erforderlich ist.

Bei uns hat es sich bewährt. Unser typisches Kundenprofil für die Desktop-Version unserer Produkte sind kleine bis mittelständische Unternehmen und der allgegenwärtige „Tante-Emma-Laden“. Wir haben auch Client-Server-Produkte, die vollwertige RDBMS wie MySQL und PostgreSQL verwenden, aber die Produktlinie mit Absolute Database ist so konzipiert, dass sie für „normale“ Benutzer einfach zu installieren und zu verwenden ist, ohne dass DB-Administratoren, technisches Personal oder in vielen Fällen kein richtiges Netzwerk- und IT-Personal

Meine Liste der wichtigsten Funktionen von Absolute Database

  • Einzeldatei für jede Datenbank. Beachten Sie, dass Ihre Apps auf Wunsch mehrere Datenbanken gleichzeitig verwenden können – wir tun dies mit einer für lokale und/oder flüchtige temporäre Daten und einer für gemeinsam genutzte und vernetzte Daten.
  • Absolute database gibt es in zwei „Geschmacksrichtungen“ – die Personal Edition ist für den Einzelbenutzerzugriff auf die Daten; die Mehrbenutzerversion ermöglicht es dem Entwickler, ein Kästchen anzukreuzen, das mehreren Benutzern und mehreren Clients den gemeinsamen Zugriff auf dieselbe Datenbankdatei mit allen Arten von Sperrmechanismen ermöglicht, die Sie erwarten würden.
  • Es ist direkt als BDE-Ersatz und SQLite-Alternative gedacht, ohne dass Treiber oder das Einbinden statischer DLL-Bibliotheken erforderlich sind.
  • Vollständig in Delphi geschrieben und alles, was Sie für den Zugriff auf die Datenbank benötigen, ist direkt in Ihren Code integriert, sodass Sie außer der Datenbank nichts mit Ihren Apps bereitstellen müssen.
  • Im Gegensatz zu SQLite unterstützt alle Datentypen , die Sie so erwarten würden DATETIMEBOOLEAN und so weiter (beide von SQLite fehlt) sowie Schlüssel, Indizes und, na ja wirklich alles inklusive autoincrement Felder und andere solche Normen für eine relationale Datenbank.
  • Selbstreparierend. Wenn eine Beschädigung festgestellt wird, repariert sich das Absolute Database-System automatisch und stellt sich selbst wieder her.
  • Es ist mit TDatabaseTDataSource und anderen Datenzugriffskomponenten kompatibel. Aus diesem Grund TDatasource funktioniert alles, was mit einem Testament verknüpft werden kann, wie z. B. Berichtskomponenten, Raster von Drittanbietern usw.
  • Sehr kostengünstig ohne Lizenz- oder Bereitstellungsgebühren und hat den vollständigen Delphi-Quellcode verfügbar. Einmal bezahlen und fertig.
  • Funktioniert in fast jeder einzelnen Delphi-Version, die Sie möglicherweise besitzen könnten, von Delphi 4 bis heute. Außerdem benötigen Sie nur die Professional Edition und diese funktioniert auch in der aktuellen Delphi Community Edition.

Gibt es ein Datenbank-Desktop-Äquivalent für Absolute Database?


Es gibt nicht nur ein Äquivalent zum ehrwürdigen Database Desktop, sondern Component Ace liefert auch den vollständigen Quellcode dafür. Diese App dient als großartiges Werkzeug zum Erstellen, Abfragen und Verwalten von Datenbanken basierend auf dem Absolute Database-Format, ist aber auch ein großartiges Referenzwerkzeug für den Zugriff auf die Daten und das Ausführen verschiedener nicht offensichtlicher Funktionen wie das Erstellen oder Reparieren von DB-Tabellen zur Laufzeit.

screenshot 2021 06 06 162603
Absolute Database – Datenbankmanager-Tool

 

Wo bekomme ich die Absolute-Datenbank?

Sie finden die Absolute Database auf der offiziellen Website von Component Ace hier: https://www.componentace.com/bde_replacement_database_delphi_absolute_database.html

Was sind die Hauptmerkmale von Absolute Database und warum ist es wie SQLite?


Wie SQLite speichert die Absolute Database alle Tabellen in einer einzigen Datei. Diese Datei kann sich entweder auf Ihrer lokalen Festplatte oder auf einer Netzwerkfreigabe befinden. Standardmäßig enden Absolute-Datenbankdateien mit der Dateierweiterung „.abs“, obwohl sie in Wirklichkeit jeden beliebigen Namen haben könnten.

Die wichtigsten Funktionen der Absolute Database, die von Component Ace aufgelistet sind, sind wie folgt

  • Kein BDE; keine DLLs
  • Einzeldatei-Datenbank
  • Unterstützung von SQL’92 (DDL & DML)
  • Kompatibel mit Standard- und Drittanbieter-Datenbanksteuerungen
  • Einzelbenutzer- und Mehrbenutzermodus (Dateiserver)
  • Funktioniert mit allen Windows-Versionen und erfordert keine Updates oder Service Packs
  • Ultraschnelle In-Memory-Tabellen
  • Unübertroffene Benutzerfreundlichkeit
  • Starke Verschlüsselung
  • BLOB-Komprimierung
  • Kostenlos für private Nutzung
  • Vollständiger Quellcode verfügbar
  • Gemafreie Verteilung

Absolute Database vermeidet die DLL-Hölle

Für mich war der Vorteil das Fehlen jeglicher Form zusätzlicher Treiber oder Dateien, die mit der Anwendung bereitgestellt werden können, während die volle TDatasource Kompatibilität erhalten bleibt. Die Datenbankfunktionalität wird direkt in Ihre App kompiliert und für mich hat dies den zusätzlichen Vorteil, dass Ihre Programme immun gegen das sind, was wir früher „DLL-Hölle“ nannten, bei der gemeinsam genutzte Treiber-DLLs und SDKs auf dem Host-Computer entweder von aktualisiert wurden eine andere Anwendung, die dasselbe Datenbank-SDK und dieselben DLLs verwendet, oder durch ein Upgrade oder Patch für das Betriebssystem.

Mit dem „Alles in Ihrer exe“-Ansatz, der von Absolute Database verwendet wird, wird der geringe Overhead des einkompilierten Datenbankzugriffscodes leicht durch den Vorteil aufgewogen, was bedeutet, dass Ihre Anwendung kugelsichere Immunität gegen diese Art von Computerumweltkatastrophen hat, die immer noch andauern bis heute für Situationen wie Apps, die auf MySQL zugreifen; wo die Dinge unerklärlicherweise schief gehen, wenn Sie versuchen, sich mit dem MySQL-Server zu verbinden, und nach langem Haareziehen und Ausleihen von Kleidung stellt sich heraus, dass mehr als eine „libmysql.dll“ auf dem System vorhanden ist und Ihre 32-Bit-App außerdem versucht, eine zu laden 64bit Bibliothek oder umgekehrt.

screenshot 2021 06 06 162929
Absolute Datenbank in der Delphi-IDE von RAD Studio

Probieren Sie es kostenlos aus

Die persönliche Nicht-Mehrbenutzer-Version von Absolute Database ist für den persönlichen Gebrauch kostenlos, Sie müssen sich also nicht auf mein Wort verlassen (obwohl Component Ace keine direkte Verbindung zu mir hat und keinen Einfluss auf diesen Artikel hatte – meine Ansichten sind) mein eigenes). Vergleichen Sie Absolute Database für sich selbst mit SQLite und sehen Sie, wie Sie zurechtkommen. Wenn Sie die Dinge noch weiter ausbauen möchten, müssen Sie wahrscheinlich für die kommerzielle Version bezahlen, die Dinge wie den Zugriff auf den vollständigen Quellcode und die Möglichkeit zur Ausführung mehrerer Benutzer hinzufügt, aber zu diesem Zeitpunkt fragen Sie sich vielleicht, wie ich, warum? Es ist die am besten gehütete geheime Datenbank im Internet.


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

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES