<%doc> Generic Database Operations Section. <%args> $sql => undef $action => undef $sid => undef $table => undef $sql_name => undef $submit => undef $forget => undef $forget_name => undef $saved_queries => undef <%attr> title => 'Direct SQL Commands' section => 'Generic' <%init> my $result; my $sql_err; my %objindex; my $session; my @orderbrief; my @headers; my $headers; my $bool_unique_query = 1; if ( $action eq "DO_SQL" && $submit ){ eval { $result = Netdot::Model->raw_sql($sql); }; if ( my $e = $@ ){ $sql_err = $e; } } if ( $action eq "DO_SQL" && $forget && $forget_name && $forget_name ne ""){ my $forget_query = SavedQueries->search(name=>$forget_name)->first; if ( defined ($forget_query) ) { $forget_query->delete; } } if ( $action eq "SAVE_QUERY" ){ if($sql_name && $sql){ SavedQueries->insert({name=>$sql_name, querytext=>$sql}); } } my @saved_queries = SavedQueries->retrieve_all(); @saved_queries = sort { $a->name cmp $b->name } @saved_queries; foreach (@saved_queries){ if(lc($_->querytext) eq lc($sql)){ $bool_unique_query = 0; last; } }
Direct SQL Commands

Be Careful!

% if ( $sql ) { % $sql =~ s//>/g; % } SQL query:


  or  
% if($action eq "DO_SQL" && $submit && (! $sql_err) && $bool_unique_query){
% if ( $sql ) { % $sql =~ s/"/"/g; % } Save this query? Name:
% }
% my @rows; % if ( $action eq "DO_SQL" && $submit ){
Query Results:
<%perl> if ( defined $result && scalar $result->{rows} ){ @headers = $result->{headers}; @rows = $result->{rows}; print scalar @{$rows[0]} . " rows
"; $m->comp('data_table.mhtml', field_headers=>@headers, data=>@rows); }elsif ( $sql_err ){ print $sql_err, "
"; } if ( @headers && @rows ) { # Create new session and get a new window for csv output $session = $ui->mk_session(); $headers = $result->{headers}; @orderbrief = @$headers if $headers; $session->{objindex} = \%objindex; $session->{orderbrief} = \@orderbrief; $session->{page} = $result->{rows}; }
% }