当我想出如何编译一个简单的程序时,现在我还有其他问题......我安装了PostgreSQL并创建了数据库和表:
1)createdb testDB 2)创建表城市(城市varchar(80),位置 VARCHAR(80));
我还是非常简单的程序:
#include <iostream>
#include <soci.h>
#include <postgresql/soci-postgresql.h>
#include <string>
using namespace std;
int main(int argc, char **argv)
{
try
{
soci::session sql(soci::postgresql, "dbname=testDB");
string row = "";
sql << "select * from cities;", soci::into(row);
sql << "insert into cities values('London', 'UK')";
sql << "select * from cities;", soci::into(row);
cout << row << "\n";
}
catch (soci::postgresql_soci_error const & e)
{
std::cerr << "PostgreSQL error: " << e.sqlstate() << " " << e.what() << std::endl;
}
catch (std::exception const & e)
{
std::cerr << "Some other error: " << e.what() << std::endl;
}
return 0;
}
此代码仅显示我在testDB中已有的行,但未显示我刚刚插入的行。例如:在我的testDB中,在表城市中,我有:
华沙波兰 柏林,德国 巴黎法国
以上代码告诉我:
华沙波兰
但未显示:
柏林德国 法国巴黎 英国伦敦
请帮助:(
答案 0 :(得分:2)
所以,在sql << "insert into cities values ('London', 'UK')";
之后添加提交
解决这个问题。