NAME
    CGI::AppBuilder::TaskLoads - Loading files to a database

SYNOPSIS
      use CGI::AppBuilder::TaskLoads;

      my $sec = CGI::AppBuilder::TaskLoads->new();
      my ($sta, $msg) = $sec->exe_sql($ar);

DESCRIPTION
    This class provides methods for reading and parsing configuration files.

  new (ifn => 'file.cfg', opt => 'hvS:')
    This is a inherited method from CGI::AppBuilder. See the same method in
    CGI::AppBuilder for more details.

  get_ldrcfg ($ar)
    Input variables:

      $ar   - array ref containing the following variables:

    Variables used or routines called:

      None

    How to use:

    Return: array/hash array or its ref {$k}{$e} where $k =
    [v|1|..|study_id]; $e contains

      rdr - relative directory
      mfn - meta file name, i.e., the xls contains domain and variable metadata
      dfn - domain file name containing domain metadata
      vfn - variable file name containing variable metadata
      ofd - output file directory
      dml - data manipulation act: A|D|I|U
      var - hash array ref containing variables

  ld_mdrstd($q,$ar)
    Input variables:

      $q    - CGI class
      $ar   - array ref containing the following variables:

    Variables used or routines called:

      None

    Return: $pr will contain the parameters adn output from running the
    PL/SQL.

  build_dml($rr, $rf, $ar)
    Input variables:

      $rr   - array ([$i]{$k}) with new data
      $rf   - hash array with the following elements
        tbn - table name:           cc_domains
        kcn - key column name:      dn_id
        scn - select column name:   study_id
        scv - select column value: 1
        act - DML type: A-auto, D-delete, I-insert, U-update
      $ar   - hash array for system wide parameters

    Variables used or routines called:

      None

    Return: This procedure returns an array containing DML SQL statements
    and populate the $rf with the following new elements:

      c1_crf  - column definition array [$i]{$k} for the table where $k=
                column_name,data_type,data_length
      c1_vars - a list of column names separated by comma in the table
      c2_crf  - column definition array [$i]{$k} for the new data where $k=
                column_name,data_type,data_length
      c2_vars - a list of column names separated by comma in the data

  cvt_ar2list($cr)
    Input variables:

      $cr   - array ref containing column definitions ([$i]{$k}) where $k is
              column_name, data_type, and data_length

    Variables used or routines called:

      None

    Return: a list containing column names separated by comma

  fmt_list2sel ($cns)
    Input variables:

      $cns  - column names separated by comma

    Variables used or routines called:

      None

    Return: a formated list to be used in SELECT statement.

  cvt_ar2hr($ar, $vars)
    Input variables:

      $ar   - array ref containing two dimensional data elements in an array
      $vars - variable names sparated by comma

    Variables used or routines called:

      None

    Return: an array with hash elements $r->[$i]{$k}.

  coding
    sub prt_txt_file { my ($s, $fn,$ar) = @_; my ($fname, $path, $sfx) =
    fileparse($fn,qr{\..*}); my $t1 =
    "<center><b>$fname$sfx</b></center>\n<hr>\n<pre>\n"; my $typ = my $w =
    my $st = my $t = ""; my $n = $w; open FILE, "<$fn" or die "ERR: could
    not open $fn: $!\n"; while (<FILE>) { s/</\&lt;/g; s/>/\&gt;/g; s/
    /^L/g; # change the non-printable char to printable char if ($st) {
    s/($st)/<font color=red>$1<\/font>/ig; } my ($tt, $i) = ($_, -1); if
    (length($tt) < $n || !$w ) { $t .= $tt; next; } while (length($tt) >=
    $n) { ++$i; if ($i) { # the second line $t .= " "x4 . substr($tt, 0, $n)
    . "\n"; } else { # first line $t .= substr($tt, 0, $n) . "\n"; } $tt =
    substr($tt, $n); } $t .= " "x4 . $tt; } close FILE; return $t if $typ;
    print "$t1$t</pre><br>\n"; }

HISTORY
    *   Version 0.10

        This version was started on 09/28/2011.

SEE ALSO (some of docs that I check often)
    Oracle::Loader, Oracle::Trigger, CGI::AppBuilder, File::Xcopy,
    CGI::AppBuilder::Message

AUTHOR
    Copyright (c) 2009 Hanming Tu. All rights reserved.

    This package is free software and is provided "as is" without express or
    implied warranty. It may be used, redistributed and/or modified under
    the terms of the Perl Artistic License (see
    http://www.perl.com/perl/misc/Artistic.html)

POD ERRORS
    Hey! The above document had some coding errors, which are explained
    below:

    Around line 805:
        You forgot a '=back' before '=head1'

