0

stdin からのコピーを使用してバルク データを挿入しようとしましたが、うまくいきません。誰が私が間違っているのか教えてもらえますか:

// 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

テーブル内に挿入しようとしているデータが見つかりません。

4

1 に答える 1

0

libpqxx に実際にデータを渡している場所がわかりません。これを行う方法については、テーブルストリームに関する ligpqxx ドキュメントを参照してください。 http://pqxx.org/devprojects/libpqxx/doc/3.1/html/Reference/a00100.html

于 2013-11-18T06:45:02.417 に答える