Удалить запись с помощью запроса libpq PQexecParams()
Я пытаюсь удалить запись с помощью функции libpq PQexecParams(). Запрос успешно возвращен, но требуемая строка не удалена из таблицы. Вот фрагмент из моего кода для справки. Я использовал PQexecParams () для выбора и вставки успешно. Не могли бы вы помочь, что мне не хватает!
PGresult *res;
int meter_info_id;
printf ("Enter Meter Information Id");
scanf("%d", &meter_info_id);
char *stm_write_reg = "delete from write_reg_set where meter_id=$1";
int nparam = 1;
//set the values to use
const char *values[1] = {(char *)&meter_info_id};
//calculate the lengths of each of the values
int lengths[1] = {sizeof(meter_info_id)};
//state which parameters are binary
int binary[1] = {1};
res = PQexecParams(conn,
stm_write_reg,
nparam, //number of parameters
NULL, //ignore the Oid field
values, //values to substitute $1 and $2 and so on
lengths, //the lengths, in bytes, of each of the parameter values
binary, //whether the values are binary or not
0); //we want the result in text format
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
fprintf(stderr, "stm_write_reg failed: %s", PQerrorMessage(conn));
exit_nicely(conn,res);
}
PQclear(res);
1 ответ
Я нашел проблему. Мне не хватало
meter_info_id = htonl(meter_info_id);
Добавив его, исправил проблему.