0

当我弄清楚如何编译一个简单的程序时,现在我遇到了其他问题......我安装了 PostgreSQL 并创建了数据库和表:

1) createdb testDB 2) 创建表ities (city varchar(80), location 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 表中,我有:

华沙 波兰 柏林 德国 巴黎 法国

上面的代码向我展示了:

波兰华沙

但不显示:

柏林 德国 巴黎 法国 伦敦 英国

请帮忙:(

4

1 回答 1

2

sql << "insert into cities values ('London', 'UK')"; 因此,在解决此问题后添加提交。

于 2012-07-11T16:04:25.657 回答