Запуск PostgreSQL в фоновом процессе.
Запустите отдельную тему в своем приложении, которая запустит сервер postgresql в локальном режиме либо путем привязки его к локальному хосту с помощью случайного свободного порта, либо с помощью сокетов (поддерживают ли окна сокеты?). Это должно быть довольно просто, что-то вроде:
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» (с соответствующими параметрами) при запуске приложения и «pg_ctl stop» при выходе из него.
Что у вас есть с RaNdOm CaP? – 2008-09-13 03:21:36
Никаких случайных колпачков нет. Видимо, я ошибся на g, видимо. – pc1oad1etter 2008-09-13 03:58:10
Вместо того, чтобы буквально внедрить его, вы могли бы установить его вместе со своей программой и запускать его только во время работы вашей программы? – 2008-09-13 03:04:22