#!/usr/local/bin/perl  
use strict;
use DBI;

sub ltx_sql_execute {

    my $action		= shift @_;
    my $statement	= shift @_;
    my @data		= shift @_;

    my $HOST  =  'glastDB.slac.stanford.edu';
    my $PWD   =  'ltxuser01';
    my $USER  =  'kiml';
    my %sql;
    my @row;
    my ($i, $j);

    #print "action=$action\n";
    #print "statement=$statement\n";
    #print "data=@data\n";
    # Connect to cmx database.

    my $dsn   =  "DBI:mysql:database=ltx_db;host=$HOST";
    my $dbh   =  DBI->connect($dsn, $USER, $PWD,
                           { PrintError => 1,
                             AutoCommit => 0 });

    if (not defined($dbh)) {

        print "\n! DBMS connection failure !\n";
        exit 1;    
    }

    # execute sql statement  
    if ($action eq "select" )
    {
         $sql{1} =  $dbh->prepare($statement);

         $sql{1}->execute();

         $j = 0;
         while (@row = $sql{1}->fetchrow_array()) {

             for $i ( 0 .. $#row )
             {
                 $data[$j][$i] = $row[$i];
             }
             $j += 1;
        }  

        if ( $sql{1}->rows == 0 )
        {
             $data[0][0] = "no rows";          
        }

        $sql{1}->finish();
    }
    else
    {
         $data[0][0] =  $dbh->do($statement);

         $dbh->commit;
    }

    $dbh->disconnect();

    return (@data);
} 

1;
