2013-09-24 3 views
0

Я пытаюсь вставить объемные данные, используя копию из stdin, но он не работает. Может кто-нибудь сказать мне, что я делаю неправильно:копия из stdin не работает для вставки в postgres в C++ с использованием libpqxx

// Redirecting file input to stdin 
std::ifstream in("infile.csv"); 
std::streambuf *cinbuf = std::cin.rdbuf(); // save old buffer 
std::cin.rdbuf(in.rdbuf());  // redirect std::cin to in 
std::string copyQuery("COPY tableName (col1,col2) FROM STDIN DELIMITER ',' CSV HEADER"); 

//Database connection 
std::string conninfo("host=ip port=5432 dbname=tdb user=tdbuser password=tdbpsswd); 
pqxx::connection conn(conninfo); 
pqxx::work transaction(conn); 

pqxx::result res = transaction.exec(copyQuery); 
transaction.commit(); 

std::cin.rdbuf(cinbuf); // reset to standard input again 

я не нахожу данные, которые я пытаюсь вставить внутри таблицы.

ответ

0

Я не вижу, где вы фактически передаете данные libpqxx. Для получения информации о том, как это сделать, см. Документацию ligpqxx по tablestreams. http://pqxx.org/devprojects/libpqxx/doc/3.1/html/Reference/a00100.html

+0

tablestreams устарели в последней версии pqxx. Есть ли замена? –

 Смежные вопросы

  • Нет связанных вопросов^_^