Ожидается ли, что запросы подготовленных операторов будут (или не будут) учитывать незафиксированные изменения при запросе, в зависимости от того, подготовлен ли оператор в том же соединении, что и транзакция?
Например:
// Open, prepare statement, close
sqlite3* db = nullptr;
sqlite3_open(filename, &db);
sqlite3_stmt* count_stmt = nullptr;
sqlite3_prepare_v3(db, "SELECT count(*) FROM names", -1, SQLITE_PREPARE_PERSISTENT, & count_stmt, nullptr));
sqlite3_close(db);
// Then open and start transaction and run prepared statement
sqlite3_open(filename, &db);
sqlite3_exec(db, "BEGIN TRANSACTION", nullptr, nullptr, &err);
sqlite3_exec(db, "INSERT INTO names (name) VALUES ('John')", nullptr, nullptr, &err);
sqlite3_step(count_stmt);
int count = sqlite3_column_int(count_stmt, 0);
sqlite3_close(db);
REQUIRE(count == 1); // fails because transaction wasn't commited
Но если я подготовлю оператор в том же соединении, которое используется транзакцией, результаты будут учитывать транзакцию перед ее фиксацией.
// Open, prepare statement, begin transaction and query
sqlite3* db = nullptr;
sqlite3_open(filename, &db);
sqlite3_stmt* count_stmt = nullptr;
sqlite3_prepare_v3(db, "SELECT count(*) FROM names", -1, SQLITE_PREPARE_PERSISTENT, & count_stmt, nullptr));
sqlite3_exec(db, "BEGIN TRANSACTION", nullptr, nullptr, &err);
sqlite3_exec(db, "INSERT INTO names (name) VALUES ('John')", nullptr, nullptr, &err);
sqlite3_step(count_stmt);
int count = sqlite3_column_int(count_stmt, 0);
sqlite3_close(db);
REQUIRE(count == 1); // passes even though transaction hasn't been committed yet
Подробнее здесь: https://stackoverflow.com/questions/786 ... nitialized
Различаются ли результаты подготовленных операторов в зависимости от того, где они инициализируются? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Улучшение функции $karl "addToCart" в PHP с помощью подготовленных операторов
Гость » » в форуме Php - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Гость
-
-
-
Проблема с обновлением данных с использованием подготовленных операторов PHP
Anonymous » » в форуме Php - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как пакетно изменить множество процедурных запросов mysqli для подготовленных операторов?
Anonymous » » в форуме Php - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-