39 votes

Quelle base de données intégrée utiliser dans une application Delphi?

Je crée une application de bureau dans Delphi et prévois d'utiliser une base de données intégrée. J'ai démarré le projet avec SQlite3 avec la bibliothèque DISQLite3. Cela fonctionne mais la documentation semble un peu légère. J'ai récemment découvert Firebird (oui, je n'ai plus de Windows depuis un moment) et il semble avoir des fonctionnalités et un support convaincants.

Quels sont les avantages et les inconvénients de chaque base de données intégrée? La taille est importante, tout comme le soutien et les ressources. Qu'avez-vous utilisé et pourquoi?

38voto

gabr Points 20458

J'utilise Firebird 2.1 Intégré et je suis très heureux avec elle.J'aime le fait que la taille de base de données est pratiquement illimitée (testé avec > 4 GO de bases de données et ça marche) et que le fichier de base de données est compatible avec le Serveur Firebird donc, je peux utiliser des outils de gestion de base de données et d'inspection. La Distribution se compose de l'abandon de quelques fichiers dans votre dossier exe.

L'accès simultané de plusieurs programmes n'est pas pris en charge, mais l'accès simultané de plusieurs threads est (aussi longtemps que vous vous assurez qu'une seule 'connect' l'opération est en cours à tout moment).

19voto

Lou Franco Points 48823

J'ai utilisé SQlite3 pour beaucoup de projets (mais à partir de C / C ++ et Objective-C). C'est extrêmement petit - pas de dépendance que ce soit - la base de données est dans un seul fichier.

C'est la base de choix des développeurs Mac car elle est directement prise en charge par CoreData et sur l'iPhone - il y a donc une base d'utilisateurs importante (sans parler de tous les autres utilisateurs).

15voto

Nick Bradbury Points 1247

J'utilise SQLite (via DISQLite3) dans FeedDemon depuis plusieurs mois et je le recommande vivement. Cette solution a été extrêmement rapide et stable. Comme Javier l'a dit, la documentation pour la bibliothèque est peut-être mince, mais la documentation pour SQLite est très bonne.

13voto

Max Lybbert Points 11822

Voyons, comparaison rapide:

SQLite:

  • dynamique de la saisie dans la base de données
  • croix-plate-forme de fichiers
  • fonctionne sur Windows, Linux, Mac, etc.
  • domaine public
  • prend en charge les transactions
  • s'appuie sur le système de fichiers de la sécurité, ne comprend pas propre sécurité

Firebird embedded:

  • typage fort dans la base de données
    • pas tous les types de données SQL sont pris en charge
  • croix-plate-forme de fichiers
    • Firebird embedded ne fonctionne que sur Windows
    • Les fichiers de Firebird embedded sont dans le même format que la version complète du serveur
    • Les fichiers de Firebird embedded peut être copié sur un serveur Windows pour une utilisation
  • disponible sous une version modifiée de la licence MPL ("ce qui est à nous est à nous et doit rester libre, ce qui est à toi est à vous et vous n'avez pas à le libérer")
  • prend en charge les transactions, les déclencheurs, etc.

MySQL embarqué:

  • prise en charge de SQL fonctions dépend du format de fichier
  • (IIRC) de la croix-plate-forme de fichiers
  • GPL, à moins de payer des redevances
  • fonctionne sur Windows, Linux, Mac
  • incroyablement populaire avec l'open source foule

Même des bases de données ont leurs forces et leurs faiblesses. Vous aurez besoin de peser les forces et faiblesses à l'encontre de ce que vous faites pour vous décider.

13voto

Jim McKeeth Points 22637

J'ai utilisé DBISAM sur plusieurs projets. Il est complètement intégré sans même avoir besoin d'une DLL externe. Contrairement aux autres que vous avez énumérés, c'est commercial. Beaucoup de fonctionnalités exceptionnelles et très bien documentées et prises en charge. Ils ont un successeur que je n'ai pas encore essayé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X