Small. Fast. Reliable.
Choose any three.
*** 38,44 ****
  undo the effects of a DELETE.
  
  Note the use of the quote() function in these triggers.  The quote()
! function is standard function in SQLite.  It converts its argument
  into a form that is appropriate for inclusion in an SQL statement.
  Numeric values come through unchanged.  Single quotes are added before
  and after strings and any internal single quotes are escaped.  The
--- 38,44 ----
  undo the effects of a DELETE.
  
  Note the use of the quote() function in these triggers.  The quote()
! function is standard in SQLite.  It converts its argument
  into a form that is appropriate for inclusion in an SQL statement.
  Numeric values come through unchanged.  Single quotes are added before
  and after strings and any internal single quotes are escaped.  The
***************
*** 53,61 ****
  presumably do the same thing in another language, though doing so
  would likely involve more work.  Remember that the code here is
  a *demonstration* of the technique - not a drop-in module that 
! will automatically do everything for you.  The demostration code
  shown below is derived from actual code in production use.  But
! you will need to make changes to taylor it to your application.
  
  To activate the undo/redo logic, invoke the undo::activate command
  with all classes (tables) that are to participate in the undo/redo as
--- 53,61 ----
  presumably do the same thing in another language, though doing so
  would likely involve more work.  Remember that the code here is
  a *demonstration* of the technique - not a drop-in module that
! will automatically do everything for you.  The demonstration code
  shown below is derived from actual code in production use.  But
! you will need to make changes to tailor it to your application.
  
  To activate the undo/redo logic, invoke the undo::activate command
  with all classes (tables) that are to participate in the undo/redo as