📄 update_hook.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Data Change Notification Callbacks</title><style type="text/css">body { margin: auto; font-family: "Verdana" "sans-serif"; padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline { float:right; text-align:right; font-style:italic; width:240px; margin:12px; margin-top:58px;}.toolbar { font-variant: small-caps; text-align: center; line-height: 1.6em; margin: 0; padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se { background: url(../images/se.png) 100% 100% no-repeat #80a796}.sw { background: url(../images/sw.png) 0% 100% no-repeat }.ne { background: url(../images/ne.png) 100% 0% no-repeat }.nw { background: url(../images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><div><!-- container div to satisfy validator --><a href="../index.html"><img class="logo" src="../images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td> <div class="se"><div class="sw"><div class="ne"><div class="nw"> <div class="toolbar"> <a href="../about.html">About</a> <a href="../sitemap.html">Sitemap</a> <a href="../docs.html">Documentation</a> <a href="../download.html">Download</a> <a href="../copyright.html">License</a> <a href="../news.html">News</a> <a href="http://www.sqlite.org/cvstrac/index">Developers</a> <a href="../support.html">Support</a> </div></div></div></div></div></td></tr></table> <a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Data Change Notification Callbacks</h2><blockquote><pre>void *sqlite3_update_hook( sqlite3*, void(*)(void *,int ,char const *,char const *,sqlite3_int64), void*);</pre></blockquote><p>The sqlite3_update_hook() interface registers a callback functionwith the <a href="../c3ref/sqlite3.html">database connection</a> identified by the first argumentto be invoked whenever a row is updated, inserted or deleted.Any callback set by a previous call to this functionfor the same database connection is overridden.</p><p>The second argument is a pointer to the function to invoke when arow is updated, inserted or deleted.The first argument to the callback is a copy of the third argumentto sqlite3_update_hook().The second callback argument is one of <a href="../c3ref/c_alter_table.html">SQLITE_INSERT</a>, <a href="../c3ref/c_alter_table.html">SQLITE_DELETE</a>,or <a href="../c3ref/c_alter_table.html">SQLITE_UPDATE</a>, depending on the operation that caused the callbackto be invoked.The third and fourth arguments to the callback contain pointers to thedatabase and table name containing the affected row.The final callback parameter is the <a href="../lang_createtable.html#rowid">rowid</a> of the row.In the case of an update, this is the <a href="../lang_createtable.html#rowid">rowid</a> after the update takes place.</p><p>The update hook is not invoked when internal system tables aremodified (i.e. sqlite_master and sqlite_sequence).</p><p>The update hook implementation must not do anything that will modifythe database connection that invoked the update hook. Any actionsto modify the database connection must be deferred until after thecompletion of the <a href="../c3ref/step.html">sqlite3_step()</a> call that triggered the update hook.Note that <a href="../c3ref/prepare.html">sqlite3_prepare_v2()</a> and <a href="../c3ref/step.html">sqlite3_step()</a> both modify theirdatabase connections for the meaning of "modify" in this paragraph.</p><p>If another function was previously registered, its pArg valueis returned. Otherwise NULL is returned.</p><p><h3>Invariants:</h3><table border="0" cellpadding="5" cellspacing="0"><tr><td valign="top">H12971</td> <td valign="top">The <a href="../c3ref/update_hook.html">sqlite3_update_hook(D,F,P)</a> interface causes the callbackfunction F to be invoked with first parameter P whenevera table row is modified, inserted, or deleted onthe <a href="../c3ref/sqlite3.html">database connection</a> D.</td></tr><tr><td valign="top">H12973</td> <td valign="top">The <a href="../c3ref/update_hook.html">sqlite3_update_hook(D,F,P)</a> interface returns the valueof P for the previous call on the same <a href="../c3ref/sqlite3.html">database connection</a> D,or NULL for the first call.</td></tr><tr><td valign="top">H12975</td> <td valign="top">If the update hook callback F in <a href="../c3ref/update_hook.html">sqlite3_update_hook(D,F,P)</a>is NULL then the no update callbacks are made.</td></tr><tr><td valign="top">H12977</td> <td valign="top">Each call to <a href="../c3ref/update_hook.html">sqlite3_update_hook(D,F,P)</a> overrides prior callsto the same interface on the same <a href="../c3ref/sqlite3.html">database connection</a> D.</td></tr><tr><td valign="top">H12979</td> <td valign="top">The update hook callback is not invoked when internal systemtables such as sqlite_master and sqlite_sequence are modified.</td></tr><tr><td valign="top">H12981</td> <td valign="top">The second parameter to the update callbackis one of <a href="../c3ref/c_alter_table.html">SQLITE_INSERT</a>, <a href="../c3ref/c_alter_table.html">SQLITE_DELETE</a> or <a href="../c3ref/c_alter_table.html">SQLITE_UPDATE</a>,depending on the operation that caused the callback to be invoked.</td></tr><tr><td valign="top">H12983</td> <td valign="top">The third and fourth arguments to the callback contain pointersto zero-terminated UTF-8 strings which are the names of thedatabase and table that is being updated.</td></tr><tr><td valign="top">H12985</td> <td valign="top">The final callback parameter is the <a href="../lang_createtable.html#rowid">rowid</a> of the row afterthe change occurs.</td></tr></table></p><p>See also lists of <a href="objlist.html">Objects</a>, <a href="constlist.html">Constants</a>, and <a href="funclist.html">Functions</a>.</p><hr><small><i>This page last modified 2008/12/09 18:44:04 UTC</i></small></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -