summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/lsqlite3/examples/update_hook.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/lsqlite3/examples/update_hook.lua')
-rw-r--r--3rdparty/lsqlite3/examples/update_hook.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/3rdparty/lsqlite3/examples/update_hook.lua b/3rdparty/lsqlite3/examples/update_hook.lua
new file mode 100644
index 00000000000..3bce0a2795c
--- /dev/null
+++ b/3rdparty/lsqlite3/examples/update_hook.lua
@@ -0,0 +1,31 @@
+
+local sqlite3 = require("lsqlite3")
+
+local db = sqlite3.open_memory()
+
+optbl = { [sqlite3.UPDATE] = "UPDATE";
+ [sqlite3.INSERT] = "INSERT";
+ [sqlite3.DELETE] = "DELETE"
+ }
+setmetatable(optbl,
+ {__index=function(t,n) return string.format("Unknown op %d",n) end})
+
+udtbl = {0, 0, 0}
+
+db:update_hook( function(ud, op, dname, tname, rowid)
+ print("Sqlite Update Hook:", optbl[op], dname, tname, rowid)
+end, udtbl)
+
+db:exec[[
+ CREATE TABLE test ( id INTEGER PRIMARY KEY, content VARCHAR );
+
+ INSERT INTO test VALUES (NULL, 'Hello World');
+ INSERT INTO test VALUES (NULL, 'Hello Lua');
+ INSERT INTO test VALUES (NULL, 'Hello Sqlite3');
+ UPDATE test SET content = 'Hello Again World' WHERE id = 1;
+ DELETE FROM test WHERE id = 2;
+]]
+
+for row in db:nrows("SELECT * FROM test") do
+ print(row.id, row.content)
+end