可能であれば、sqlliteと同様に PostgreSQL データベースを埋め込むことができることに興味があります。それは不可能だと読みました。私はデータベースの専門家ではありませんので、ご意見をお聞かせください。
基本的に、すべての構成とインストールなしで PostgreSQL が必要です。可能であれば、方法を教えてください。
埋め込むことはできませんし、試してはいけません。
埋め込みには、前述のようにsqliteまたはfirebird rdbmsを使用する必要があります。
バックグラウンド プロセスで postgresql を実行します。
ローカル モードで postgresql サーバーを起動する別のスレッドをアプリケーションで起動します。これは、ランダムな空きポートを使用して localhost にバインドするか、ソケットを使用します (Windows はソケットをサポートしていますか?)。それはかなり簡単なはずです。
system("C:\Program Files\MyApplication\pgsql\postgres.exe -DC:\Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345");
127.0.0.1:12345 に接続します。
アプリケーションが終了するときは、いつでも SIGTERM をスレッドに送信してから、postgresql が終了する (つまり、スレッドに参加する) まで数秒待つことができます。
PS: pg_ctlを使用して「組み込み」データベースを制御することもできます。スレッドがなくても、アプリケーションを起動するときに「pg_ctl start」(適切なオプションを指定) を実行し、アプリケーションを終了するときに「pg_ctl stop」を実行するだけです。
コードを大幅に書き直さない限り、Postgres を「組み込み」で実行することはできません。別のプロセスとして実行するか、別のものを使用してください。SQLite は優れた選択肢です。しかし、他にもあります。MySQL には組み込みバージョンがあります。http://mysql.com/oem/で参照してください。また、いくつかの Java の選択肢があり、Mac には書き込み可能な Core Data もあります。地獄、FoxPro を使用することもできます。どの OS を使用しており、データベースからどのようなサービスが必要ですか?
sqlite などのようなインプロセス タイプのものとして埋め込むことはできませんが、 http://www.innosetup.orgで Inno セットアップを使用して、アプリケーションのセットアップに簡単に埋め込むことができます。彼らのメーリング リスト アーカイブを検索すると、誰かがあなたのためにほとんどの作業を行っていることがわかります。必要なのは、圧縮されたディストリビューションを取得することだけです。ユーザーがアプリをインストールするときに、postgresql を簡単にインストールできます。その後、pg_hba.conf ファイルを使用して、サーバーをローカル ホストのみに制限できます。真の組み込み DB ではありませんが、機能します。
PostgreSQL は、スタンドアロン サーバーとして実行することを目的としています。十分に長くハッキングすれば埋め込むことはおそらく可能ですが、別のプロセスで意図したとおりに実行する方がはるかに簡単です。
HSQLDB (http://hsqldb.org/) は、簡単に埋め込むことができるもう 1 つのデータベースです。Java が必要ですが、Java アプリケーションでよく使用される優れた選択肢です。
誰でも Mac OS X で試してみました:
http://pagesperso-orange.fr/bruno.gaufier/xhtml/prod_postgresql.xhtml
http://www.macosxguru.net/article.php?story=20041119135924825
(もちろん、sqlite は私の選択した組み込みデータベースでもあります)