dp_process

one of the documented procedures in this installation of the ACS
Usage:
dp_process {-db "" -db_op "update_or_insert" -form_index "" -where_clause ""}
What it does:
Does database updates/inserts of all the fields passed from the previous form that start with dp$form_index.
Defined in: /web/philip/tcl/data-pipeline-defs.tcl

Source code:

arg_parser_for_dp_process $args


    set release_db 0
    if { [empty_string_p $db] } {
	set release_db 1
	set db [ns_db gethandle subquery]
    }

    dp_read_form_variables
    # Like set_the_usual_for_variables, will return an error
    # if there is no input unless called with an argument of 0.
    #
    # Reads the form data in an ns_set called dp_form
 
    dp_read_checkboxes "_cv" "f"
    # Fills in unchecked boxes to update the data in the tables

    set error_list [dp_check_var_input $form_index]
    set num_errors [lindex $error_list 0]
    # iterates through all form variables and checks if the 
    # value matches the datatype (which is determined by looking
    # at the fourth part of the variable name)

    if { $num_errors > 0 } {
	ad_return_complaint $num_errors [lindex $error_list 1]
	ad_script_abort
    }

    # ns_log Notice "\n\nform_index $form_index"

    set dp_sql_structs [dp_build_sql_structs $form_index]
    # create an ns_set where the key is the name of the table
    # and the value is a dp_sql_struct

    # Used to store results for each table
    set ora_results [ns_set create]

    # At this point, see what tables you have information for,
    # add any other variables that need to go into the table,
    # and do the updates

     if {![empty_string_p $dp_sql_structs]} {
	set size [ns_set size $dp_sql_structs]
	for { set i 0 } { $i < $size } { incr i } {
	    set table_name [ns_set key $dp_sql_structs $i]
	    set sql_struct [ns_set value $dp_sql_structs $i]
	    set result [dp_sql_struct_execute  $db $sql_struct $table_name $db_op $where_clause]
	    
	    ns_set put $ora_results $table_name $result
	}
    }

    if { $release_db } {
	ns_db releasehandle $db
    }

    return $ora_results


philg@mit.edu