0
我試圖用PQputCopyData
和以下代碼插入兩列。但一旦檢查到最終結果,它將顯示編碼爲UTF8
的錯誤無效字節序列,並且數據沒有被插入到數據庫中。 這兩種類型的色譜柱都是character varying
。我在這裏做錯了什麼?如何使用PQputCopyData插入多列
const char *buffer = "john,doe";
PGresult *res;
res=PQexec(conn,"COPY john FROM STDIN DELIMITER ',';");
cout<<buffer;
if(PQresultStatus(res) != PGRES_COPY_IN)
{
cout<<"copy in not ok";
}
else
{
if(PQputCopyData(conn,buffer,400) == 1)
{
if(PQputCopyEnd(conn,NULL) == 1)
{
PGresult *res = PQgetResult(conn);
if(PQresultStatus(res) == PGRES_COMMAND_OK)
{
cout<<"done";
}
else
{
cout<<PQerrorMessage(conn); Here I get the error invalid byte sequence for encoding "UTF8"
}
}
else
{
cout<<PQerrorMessage(conn);
}
}
}
感謝。這解決了問題 – jibingp
你能告訴我如何一次插入多行嗎?我的意思是緩衝結構應該如何?我應該在緩衝區結構中的每行之後插入\ n嗎? – jibingp
@ user3660900:是,每行後面有'\ n'。如果問題解決,請[接受答案](http://meta.stackexchange.com/a/5235/231916)。 –