Forum OpenACS Q&A: Response to db_dml in a foreach loop isn't working

Collapse
Posted by James Thornton on
Database operation "dml" failed
        while executing
    "ns_pg_bind dml nsdb0 {
                insert into es_skinny_data (
                  object_id,
                  attribute_id,
                  int_value,       
     ..."
        ("uplevel" body line 1)
        invoked from within
    "uplevel $ulevel [list ns_pg_bind $type $db $sql"
        invoked from within
    "db_exec dml $db $full_statement_name $sql"
        ("uplevel" body line 2)
        invoked from within
    "uplevel 1 $code_block "
        invoked from within
    "db_with_handle db {
                db_exec dml $db $full_statement_name $sql
            }"
        (procedure "db_dml" line 37)
        invoked from within
    "db_dml insert_data $data_insert_sql"
        ("foreach" body line 2)
        invoked from within
    "foreach data_insert_sql $data_insert_sql_list {
                db_dml insert_data $data_insert_sql
            }"
        ("uplevel" body line 4)
        invoked from within
    "uplevel 1 $transaction_code "
        (procedure "db_transaction" line 1)
        invoked from within
    "db_transaction {
            db_dml insert_object $object_insert_sql

            foreach data_insert_sql $data_insert_sql_list {
                db_dml insert_data $data_insert_sql
            ..."
        invoked from within
    "if { [form is_valid object] } {

        set object_insert_sql "
        insert into es_skinny_object (
          object_id,
          object_type_id,
          name,
       ..."
        ("uplevel" body line 234)
        invoked from within
    "uplevel {
              proc es_set_skinny_form_vars {} {

        # modified from set_form_variables

        uplevel { if { [ns_getform] == "" } {
            ns_returnerror ..."
        (procedure "code::tcl::/web/openacs4/www/wpower/www/object" line 2)
        invoked from within
    "code::tcl::$__adp_stub"
        invoked from within
    "if { [file exists $__adp_stub.tcl] } {

          # ensure that data source preparation procedure exists and is up-to-date
          adp_init tcl $__adp_stub
    ..."
        ("uplevel" body line 3)
        invoked from within
    "uplevel {

        if { [file exists $__adp_stub.tcl] } {

          # ensure that data source preparation procedure exists and is up-to-date
          adp_init t..."
        (procedure "adp_prepare" line 2)
        invoked from within
    "adp_prepare "
        (procedure "template::adp_parse" line 30)
        invoked from within
    "template::adp_parse [file root [ad_conn file]] {}"
        (procedure "adp_parse_ad_conn_file" line 7)
        invoked from within
    "$handler"
        ("uplevel" body line 2)
        invoked from within
    "uplevel $code"
        invoked from within
    "ad_try {
            $handler
          } ad_script_abort val {
            # do nothing
          }"
        invoked from within
    "rp_serve_concrete_file [ad_conn file]"
        (procedure "rp_serve_abstract_file" line 60)
        invoked from within
    "rp_serve_abstract_file "$root/$path""
        ("uplevel" body line 2)
        invoked from within
    "uplevel $code"
        invoked from within
    "ad_try {
            rp_serve_abstract_file "$root/$path"
            set tcl_url2file([ad_conn url]) [ad_conn file]
            set tcl_url2path_info([ad_conn url]) [ad_conn path_inf..."