0
當我想出如何編譯一個簡單的程序時,現在我有其他問題了......我安裝了PostgreSQL並創建了數據庫和表格:SOCI(SQL C++ wrapper) - PostgreSQL不執行命令(?)
1)createdb testDB 2)創建表城市(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,在表中的城市,我有:
波蘭華沙 德國柏林 法國巴黎
和上面的代碼顯示了我:
波蘭華沙
但未顯示:
德國柏林 法國巴黎 英國倫敦
請幫助:(
如何在第二次選擇之前提交? – ForEveR 2012-07-11 15:31:42
@ForEveR:嗯,這段代碼:http://pastie.org/private/y89269ea8u3vhif0m1adcw顯示我'華沙'兩次...看一看:http://pastie.org/private/i1ejnzyenmvwgvjios2ja – 2012-07-11 15:40:23
@ForEveR:geez , 謝謝哥們 ! ^^它完美的工作:D我剛剛在'sql <<「插入到城市值('London','UK')」;'並且它現在正在工作:)中添加'sql.commit();' – 2012-07-11 15:50:52