Question

Si c'est possible, je souhaite pouvoir intégrer une base de données PostgreSQL, similaire à SQLite.J'ai lu que c'est pas possible.Cependant, je ne suis pas un expert en bases de données, je souhaite donc avoir votre avis.

Essentiellement, je veux PostgreSQL sans toute la configuration et l'installation.Si c'est possible, dites-moi comment.

Était-ce utile?

La solution

Sauf si vous effectuez une réécriture majeure du code, il n'est pas possible d'exécuter Postgres "embarqué".Exécutez-le en tant que processus distinct ou utilisez autre chose.SQLite est un excellent choix.Mais il y en a d'autres.MySQL a une version intégrée.Voyez-le sur http://mysql.com/oem/.Également plusieurs choix Java, et Mac dispose de Core Data que vous pouvez également écrire.Bon sang, vous pouvez même utiliser FoxPro.Sur quel système d'exploitation utilisez-vous et de quels services avez-vous besoin de la base de données ?

Autres conseils

Vous ne pouvez pas l'intégrer et vous ne devriez pas non plus essayer.

Pour l'intégration, vous devez utiliser SQLite comme vous l'avez mentionné ou SGBD Firebird.

Exécutez postgresql dans un processus en arrière-plan.

Démarrez un thread séparé dans votre application qui démarrerait un serveur postgresql en mode local soit en le liant à localhost avec un port libre aléatoire, soit en utilisant des sockets (Windows prend-il en charge les sockets ?).Cela devrait être assez simple, quelque chose comme :

system("C:\Program Files\MyApplication\pgsql\postgres.exe -D C:\Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345");

puis connectez-vous simplement à 127.0.0.1:12345.

Lorsque votre application se ferme, vous pouvez toujours envoyer un SIGTERM à votre thread, puis attendre quelques secondes que postgresql se ferme (c'est-à-dire rejoindre le thread).

PS :Vous pouvez aussi utiliser pg_ctl pour contrôler votre base de données "embarquée", même sans threads, il suffit de faire un "pg_ctl start" (avec les options appropriées) au démarrage de l'application et un "pg_ctl stop" en la quittant.

Vous ne pouvez pas l'intégrer en tant qu'élément de type en cours comme sqlite, etc., mais vous pouvez facilement l'intégrer dans la configuration de votre application en utilisant la configuration Inno à l'adresse http://www.innosetup.org.Recherchez dans leurs archives de liste de diffusion et vous découvrirez que quelqu'un a fait la plupart du travail pour vous et tout ce que vous avez à faire est de récupérer la distribution zippée et vous pouvez facilement installer Postgresql lorsque l'utilisateur installe votre application.Vous pouvez ensuite utiliser le fichier pg_hba.conf pour restreindre le serveur à l'hôte local uniquement.Ce n'est pas une véritable base de données intégrée, mais cela fonctionnerait.

PostgreSQL est destiné à fonctionner en tant que serveur autonome ;il est probablement possible de l'intégrer si vous le piratez suffisamment et assez longtemps, mais il serait beaucoup plus facile de simplement l'exécuter comme prévu dans un processus séparé.

HSQLDB (http://hsqldb.org/) est une autre base de données facilement intégrable.Nécessite Java, mais constitue un excellent choix souvent utilisé pour les applications Java.

Quelqu'un a-t-il essayé sous Mac OS X :

http://pagesperso-orange.fr/bruno.gaufier/xhtml/prod_postgresql.xhtml

http://www.macosxguru.net/article.php?story=20041119135924825

(Bien sûr, SQLite serait également ma base de données intégrée de choix)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top