だから私はforループで自分のsqlステートメントを構築しようとしています。
ただし、実行すると、文字列の最初のポイントでエラーが表示されます。
連結方法が間違っていますか?sqlステートメントを出力してpostgresqlで手動で実行すると、機能します。
また、私は試しました
char *sqlStatement = "INSERT INTO record()..VALUES();\
INSERT INTO record()..VALUES();\
INSERT INTO record()..VALUES();
"
それはうまくいきます。
簡潔にするために、ループを1回だけに減らし、列の数を減らしたことに注意してください。
コード:
char sqlStatement[8000];
for(int i=0;i<1;i++) {
sprintf(&sqlStatement[0] + strlen(sqlStatement), "INSERT INTO record (\"user_id\", \"filename\", \"ports\", \"timestamp\" ... )VALUES (1, 'example%d', 0, '123456789%d', ... );", i, i,);
}
pgResult = PQexec(pgConn, sqlStatement);
if (PQresultStatus(pgResult) != PGRES_COMMAND_OK) {
printf("%s", PQresultErrorMessage(pgResult));
PQclear(pgResult);
closeSQL(pgConn);
exit(-1);
}
エラーメッセージ:
ERROR: syntax error at or near ""
LINE 1: INSERT INTO captures ("user_id", "filename", "ports", "time...
^