![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эти функции возвращают количество измененных, вставленных или удаленных
строк последним INSERT, UPDATE или DELETE на соединении с базой данных,
определенном единственным параметром. Две функции идентичны за исключением
типа возвращаемого значения, смотря по количеству строк. Если оно больше,
чем максимальное значение, поддержанное типом "int",
то возвращаемое значение sqlite3_changes() не определено.
Выполнение любого другого типа SQL-оператора не изменяет значение,
возвращенное этими функциями. Только изменения, внесенные непосредственно INSERT, UPDATE или DELETE,
рассматриваются, вспомогательные изменения, вызванные
триггерами,
действиями внешнего ключа или
ограничительной резолюцией REPLACE,
не посчитаны. Изменения представления, которые перехвачены
INSTEAD OF triggers,
не посчитаны. Значение, возвращенное returned by sqlite3_changes()
сразу после INSERT, UPDATE или DELETE, которым управляют согласно
представлению, всегда является нолем. Только изменения, внесенные
в реальные таблицы, посчитаны. Вещи более сложны, если выполняется sqlite3_changes()
в то время, как работает триггер. Это может произойти, если программа
использует SQL-функцию changes()
или если некоторая другая функция обратного вызова вызывает непосредственно
sqlite3_changes(): Это означает, что, если функция SQL changes()
(или подобная) используется первым INSERT, UPDATE или DELETE
в триггере, это возвращает значение, как установлено, когда
запроса начал выполняться. Если это используется вторым или последующим таким
запросом в рамках триггера, возвращенное значение отражает количество
строк, измененных предыдущим INSERT, UPDATE или DELETE в том
же самом триггере. Если отдельный поток вносит изменения на том же самом соединении с базой
данных, в то время как работает sqlite3_changes()
, возвращенное значение непредсказуемое и не значащее. См. также:
Choose any three.
SQLite C Interface
Подсчитайте количество измененных строк
int sqlite3_changes(sqlite3*);
sqlite3_int64 sqlite3_changes64(sqlite3*);