ad_dbclick_check_dml db table_name id_column_name generated_id return_url insert_sqlWhat it does:
this proc is used for pages using double click protection. table_name is table_name for which we are checking whether the double click occured. id_column_name is the name of the id table column. generated_id is the generated id, which is supposed to have been generated on the previous page. return_url is url to which this procedure will return redirect in the case of successful insertion in the database. insert_sql is the sql insert statement. if data is ok this procedure will insert data into the database in a double click safe manner and will returnredirect to the page specified by return_url. if database insert fails, this procedure will return a sensible error message to the user.Defined in: /web/philip/packages/acs-core/utilities-procs.tcl
Source code:
if [catch { ns_db dml $db $insert_sql } errmsg] { # Oracle choked on the insert # detect double click set selection [ns_db 0or1row $db " select 1 from $table_name where $id_column_name='[DoubleApos $generated_id]'"] if { ![empty_string_p $selection] } { # it's a double click, so just redirect the user to the index page ad_returnredirect $return_url return } ns_log Error "[info script] choked. Oracle returned error: $errmsg" ad_return_error "Error in insert" " We were unable to do your insert in the database. Here is the error that was returned: <p> <blockquote> <pre> $errmsg </pre> </blockquote>" return } ad_returnredirect $return_url return