私はpostgresqlでnewbieで、PQexecparamsでdbに値を挿入しようとしています。私は値を配列内の2つのパラメータをバインドするとき、それは完璧に動作しますが、私は3に移動したときに、エラー が「INSERTに失敗しました:出力バッファ用のメモリを割り当てることができません」と表示さ ここに私のコードです:PQexecparams - バインディング配列の3番目のパラメータをサポートしていません
void InsertBinaryRec(PGconn *conn, double *valueX, char *nameString, double *valueY)
{
int paramLengths[10];
int paramFormats[3] = { 1, 0, 1 };
const char* values[3] = {(const char *) valueX, nameString, (const char *) valueY };
cout << "ya phr gya????" << endl;
paramLengths[3] = 10 ;
PGresult *res = PQexecParams(conn,
"INSERT INTO testData (X, NAME, Y) VALUES ($1::bytea, $2::TEXT, $3::bytea)",
3,
NULL,
values,
paramLengths,
paramFormats,
3);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
fprintf(stderr, "INSERT failed: %s\n", PQerrorMessage(conn));
PQclear(res);
CloseConn(conn);
}
cout << "Insert testData record - OK\n";
PQclear(res);
}
データベースフィールドは本当に 'bytea'ですか? –
はい、私はbyteaを設定しました –