如果可能,我有兴趣能够嵌入PostgreSQL数据库,类似于sqllite.我读过这是不可能的.我不是数据库专家,所以我想听听你的意见.
基本上我想要没有所有配置和安装的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也有你可以写的核心数据.地狱,你甚至可以使用FoxPro.你在什么操作系统和数据库需要什么服务?
您不能将其嵌入到像sqlite等过程类型的东西中,但您可以使用Inno setup在http://www.innosetup.org轻松地将其嵌入到您的应用程序设置中.搜索他们的邮件列表存档,你会发现有人为你做了大部分的工作,所有你需要的就是抓住压缩的发行版,你可以在用户安装你的应用程序时轻松安装postgresql.然后,您可以使用pg_hba.conf文件将服务器限制为仅限本地主机.不是真正的嵌入式数据库,但它会起作用.