Ich verwende die set_update_hook()
Funktion im Python-Modul karellen-sqlite, um Datenbankänderungen automatisch an eine Funktion zu senden. Grundsätzlich funktioniert es wie folgt aus:Daten in Hook einschließen?
from pysqlite2 import connect
def hook(conn, op, db_name, table_name, rowid):
"""Handle notification here. Do not modify the connection!"""
with connect(":memory:") as conn:
conn.set_update_hook(hook)
conn.execute("CREATE TABLE a (int id);")
conn.execute("INSERT INTO a VALUES (1);")
ich, um zu bestimmen versuche, wenn die Informationen gesendet hook
die Daten enthält, die eingeführt wurde, aktualisiert oder in der Datenbank gelöscht.
So, nach einer insert
Ausführung gedruckt ich die Werte von hook
‚s Parameter:
conn = ['DataError', 'DatabaseError', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'Warning', '__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_update_hook', '_update_hook_cb', '_update_hook_last_error', 'close', 'commit', 'create_aggregate', 'create_collation', 'create_function', 'cursor', 'enable_load_extension', 'execute', 'executemany', 'executescript', 'in_transaction', 'interrupt', 'isolation_level', 'iterdump', 'last_update_hook_error', 'load_extension', 'rollback', 'row_factory', 'set_authorizer', 'set_progress_handler', 'set_trace_callback', 'set_update_hook', 'text_factory', 'total_changes']
op = UpdateHookOps.SQLITE_INSERT
db_name = main
table_name = test
rowid = 3
Aber wo sind die Daten? Muss ich eine separate Abfrage ausführen, um sie abzurufen (im Falle einer Einfügung oder Aktualisierung)?