Forum OpenACS Q&A: Response to Help on (1) Use of template::form in notes module (2) IFRAME cached by browser

I can answer the easiest part. :)

the ':' tells the db driver that this refers to a bind variable that's going to be sent separately, instead of interpolating the value into the string before handing it to the DB.  This allows the DB to cache its query plan for all instances of this query.  (Note the PG driver emulates bind variables by doing string interpolation "behind the scenes" so you don't actually get this benefit.)  With the ACS DB api, bind variables are grabbed from variables in the script with the same name.  For instance,

set bar "a value"

db_dml foo_dml "update foo set i = :bar"