Я знаю, что, вероятно, было много на этом, но после нескольких дней поиска я не могу найти, как сделать одну простую передачу integer
и char
за один переход в PostgreSQL из C под Linux.
В PHP это просто, как 123, а в C, использующем libpq
, это кажется чем-то необычным.
Я посмотрел на PQexecParams
, но, похоже, это не помогает.Примеры в сети также не помогают, и это кажется невыполнимой миссией.
Может быть, кто-то будет достаточно любезен, чтобы перевести этот простой оператор PHP на C и показать мне, как передать несколько переменных разных типов в одномINSERT
запрос.
col1 is INT
col2 is CHAR
$int1 = 1;
$char1 = 'text';
$query = "INSERT INTO table (col1, col2) values ('$int1',$char1)";
$result = ibase_query($query);
Это покажет, что я пытаюсь сделать (учтите, что код очень неправильный):
void insert_CommsDb(PGconn *conn, PGresult *pgres, int csrv0) { const char * params[1];
params[0] = csrv0;
pgres = PQexecParams(conn, "INSERT INTO comms_db (srv0::int) values ($1)",
1,
NULL,
params,
1,
NULL,
0);
if (PQresultStatus(pgres) != PGRES_COMMAND_OK)
{
fprintf(stderr, "INSERT failed: %s", PQerrorMessage(conn));
exit_nicely(conn,pgres);
}
PQclear(pgres);
}