Я новичок в postgresql и хотел бы спросить, как сделать транзакцию, используя BEGIN, COMMIT и PQexecPrepared.В моей программе мне нужно обновить много таблиц перед COMMIT.Я понимаю, что нам нужно использовать:
1. PQexec(conn,"BEGIN");
2. execute some queries
3. PQexec(conn,"COMMIT");
Я впервые попробовал с помощью PQexecParams, он работал:
PQexec(conn,"BEGIN");
PQexecParams(conn, "INSERT INTO Cars (Id,Name, Price) VALUES ($1,$2,$3)",
3, NULL, parValues, NULL , NULL, 0 );
PQexec(conn,"COMMIT");
Однако, когда я пытался с помощью PQexecPrepared, моя таблица Carsне был обновлен после COMMIT (конечно, он работал в режиме автоматической фиксации без BEGIN & COMMIT)
PQexec(conn,"BEGIN");
PQprepare(conn,"teststmt", "INSERT INTO Cars (Id,Name, Price) VALUES ($1,$2,$3)", 3, NULL );
PQexecPrepared(conn, "teststmt", 3, parValues,NULL, NULL,0);
PQexec(conn,"COMMIT");
Есть ли у вас какие-либо рекомендации в этом случае?