hello example编译运行总结:
一定要学会看官网文档,需要哪些库下载下来,然后看库包里的INSTALL或readme文档。路径的确定要参考文档,不要理所当然。要安装postgreSQL installer,否则没有pgsql服务,不能监听5432端口。
要安装installer,而不是binaries,binaries还要配置一下才能创建pgsql应用(keyword:安装postgres)
pgsql的超级用户是postgres,密码安装的时候设置了
运行hello example前,先要在postgres中创建用户和数据库,赋予用户所有权限,然后调用odb生成的sql文件创建table:
cmd进入example目录;
登录postgres:
psql -U postgres
CREATE USER Mike WITH PASSWORD 'password';
创建数据库,并指定所有者为Mike :
CREATE DATABASE person OWNER Mike ;
将person数据库的所有权限都赋予Mike ,否则Mike 只能登录控制台,没有任何数据库操作权限:
GRANT ALL PRIVILEGES ON DATABASE person to Mike ;
运行sql文件,创建person表:
\i person.sql;
到此,然后VS就可以运行hello example了
可以用构造函数传参数
使用tracer打印详细的sql语句:
transaction t (db->begin ());
// 打印出详细的sql语句
t.tracer(stderr_tracer);
错误:
数据库不存在:postgres没有创建数据库
42P01:postgres没有创建table
还以为person.sql会自动被调用,原来还是有手动运行sql文件(\i FILE)
参考:
C++ Object Persistence with ODB