#-------------------------------------------------------------------------------
# Run CLP commands which require a database connection and capture output to file.
#
RUN_CONNECTED_DB2CLP_COMMAND()
{
 set "$DEBUG_SWITCH"
 FILE="$1"
 MAX_RETURN_CODE="$2"
 COMPRESS_OPTION="$3"
 DB2_COMMAND="$4"

 case "$NO_OF_PARTITIONS" in
 1)
   OUTPUT_FILE="${FILE}.${TODAY}"
   db2 +o "CONNECT TO ${DBNAME}"
   RETURN_CODE="$?"
   if [[ "$RETURN_CODE" -gt 0 ]]; then
      ERROR_MESSAGE "Problem connecting to database: \"${DBNAME}\", return code: \"${RETURN_CODE}\"" $DEBUG_SWITCH
   else
      RUN_DB2CLP_COMMAND "$OUTPUT_FILE" "0" "$COMPRESS_OPTION" "$DB2_COMMAND"
   fi
   db2 +o "TERMINATE"
 ;;
 *)
   typeset -i DBPARTITIONNUM=0
   while [[ "$DBPARTITIONNUM" -lt "$NO_OF_PARTITIONS" ]]
   do
      OUTPUT_FILE="${FILE}.${DBPARTITIONNUM}.${TODAY}"
      INIT_OUTPUT_FILE "$OUTPUT_FILE" "$DATE_FORMAT" "$DEBUG_SWITCH"  
      print "\nCommand ran on dbpartitionnum ${DBPARTITIONNUM}:" >> "$OUTPUT_FILE"
      print "  db2 ${DB2_COMMAND}\n"                             >> "$OUTPUT_FILE"

      db2_all "<<+${DBPARTITIONNUM}<                            \
                                     db2 +o CONNECT TO $DBNAME; \
                                     db2 +v $DB2_COMMAND;       \
                                     RETURN_CODE=$?"              >> "$OUTPUT_FILE"
      if [[ "$RETURN_CODE" -gt "$MAX_RETURN_CODE" ]]; then
         ERROR_MESSAGE "Problem running command: \"db2 ${DB2_COMMAND}\" on dbpartitionnum: ${DBPARTITIONNUM}, return code: \"${RETURN_CODE}\",\n        View: \"${OUTPUT_FILE}\" for further details" $DEBUG_SWITCH
      else
         case "$COMPRESS_OPTION" in
            compress|COMPRESS)
              ZIP_IT "$OUTPUT_FILE" "$DEBUG_SWITCH"  
              ;;
            *)
              print "Output saved to: \"${OUTPUT_FILE}\""
              ;;
         esac
      fi
      db2_all "<<+${DBPARTITIONNUM}< db2 TERMINATE" > /dev/null
      let DBPARTITIONNUM=DBPARTITIONNUM+1
   done
 ;;
 esac
}
