Подтвердить что ты не робот

Если возможно, как можно встроить PostgreSQL?

Если это возможно, я заинтересован в возможности встроить базу данных PostgreSQL, похожую на sqllite. Я читал, что это невозможно. Однако я не эксперт по базам данных, поэтому хочу услышать от вас.

По сути, я хочу PostgreSQL без всякой настройки и установки. Если это возможно, скажите мне, как.

4b9b3361

Ответ 1

Если вы не перейдете к основному переписыванию кода, невозможно запустить "встроенный" Postgres. Либо запускайте его как отдельный процесс, либо используйте что-то еще. SQLite - отличный выбор. Но есть и другие. MySQL имеет встроенную версию. Посмотрите на http://mysql.com/oem/. Также несколько вариантов java, и Mac имеет базовые данные, которые вы также можете написать. Черт, вы даже можете использовать FoxPro. Какая ОС вы и какие службы вам нужны из базы данных?

Ответ 2

Вы не можете вставлять его и не пытаться.

Для встраивания вы должны использовать sqlite, как вы упомянули, или firebird RDBMS.

Ответ 3

Запустите postgresql в фоновом режиме.

Начните отдельный поток в приложении, который запустит сервер postgresql в локальном режиме, либо привязав его к локальному хосту с помощью случайного свободного порта, либо с помощью сокетов (поддерживает ли Windows сокеты?). Это должно быть довольно легко, что-то вроде:

( "C:\Program Files\MyApplication\pgsql\postgres.exe -D C:\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" (с соответствующими параметрами) при запуске приложение и "pg_ctl stop" при выходе из него.

Ответ 4

Вы не можете вставлять его в виде типа типа типа sqlite и т.д., но вы можете легко вставлять его в свою настройку приложения с помощью установки Inno на http://www.innosetup.org. Найдите их архив списка рассылки, и вы найдете, что кто-то сделал большую часть работы для вас, и все, что вам нужно, это захватить zipped-дистрибутив, и вы можете легко установить postgresql, когда пользователь установит ваше приложение. Затем вы можете использовать файл pg_hba.conf, чтобы ограничивать сервер только локальным хостом. Не настоящая встроенная БД, но она будет работать.

Ответ 5

PostgreSQL предназначен для работы в качестве автономного сервера; возможно, возможно встроить его, если вы взломаете его достаточно жестко и достаточно долго, но было бы намного проще запустить его, как предполагалось, в отдельном процессе.

Ответ 6

HSQLDB (http://hsqldb.org/) - это еще один db, который легко внедряется. Требует Java, но является отличным и часто используемым выбором для приложений Java.