Domanda

Se possibile, mi interessa poter incorporare un database PostgreSQL, simile a sqllite.Ho letto che lo è non possibile.Però non sono un esperto di database, quindi voglio sentire la tua opinione.

Essenzialmente voglio PostgreSQL senza tutta la configurazione e l'installazione.Se è possibile, dimmi come.

È stato utile?

Soluzione

A meno che non si esegua una riscrittura importante del codice, non è possibile eseguire Postgres "incorporato".Eseguilo come processo separato o usa qualcos'altro.SQLite è una scelta eccellente.Ma ce ne sono altri.MySQL ha una versione incorporata.Guardalo su http://mysql.com/oem/.Anche diverse scelte Java e anche il Mac ha Core Data che puoi scrivere.Diavolo, puoi anche usare FoxPro.Che sistema operativo utilizzi e di quali servizi hai bisogno dal database?

Altri suggerimenti

Non puoi incorporarlo, né dovresti provarci.

Per l'incorporamento dovresti usare sqlite come hai detto o firebird rdbms.

Esegui postgresql in un processo in background.

Avvia un thread separato nella tua applicazione che avvierà un server postgresql in modalità locale associandolo a localhost con una porta libera casuale o utilizzando i socket (Windows supporta i socket?).Dovrebbe essere abbastanza semplice, qualcosa del tipo:

system("C:\Programmi\MiaApplicazione\pgsql\postgres.exe -D C:\Documents and Settings\Utente\Impostazioni locali\MiaApplicazione\database -h 127.0.0.1 -p 12345");

e poi connettiti semplicemente a 127.0.0.1:12345.

Quando l'applicazione si chiude, puoi sempre inviare un SIGTERM al tuo thread e poi attendere qualche secondo affinché postgresql venga chiuso (cioè unirti al thread).

PS:Puoi anche usare pg_ctl per controllare il proprio database "embedded", anche senza thread, basta eseguire un "pg_ctl start" (con le opportune opzioni) all'avvio dell'applicazione e "pg_ctl stop" all'uscita.

Non puoi incorporarlo come qualcosa di tipo in corso come sqlite ecc., ma puoi facilmente incorporarlo nella configurazione dell'applicazione utilizzando Inno setup su http://www.innosetup.org.Cerca nell'archivio della loro mailing list e scoprirai che qualcuno ha fatto la maggior parte del lavoro per te e tutto ciò che devi fare è prendere la distribuzione zippata e potrai facilmente installare postgresql quando l'utente installa la tua app.È quindi possibile utilizzare il file pg_hba.conf per limitare il server solo all'host locale.Non un vero DB incorporato, ma funzionerebbe.

PostgreSQL è pensato per essere eseguito come server autonomo;probabilmente è possibile incorporarlo se lo hackeri in modo intenso e abbastanza lungo, ma sarebbe molto più semplice eseguirlo come previsto in un processo separato.

HSQLDB (http://hsqldb.org/) è un altro database facilmente incorporabile.Richiede Java, ma è una scelta eccellente e spesso utilizzata per le applicazioni Java.

Qualcuno ha provato su Mac OS X:

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

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

(Ovviamente sqlite sarebbe anche il mio database incorporato preferito)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top