/[SQLSession]/trunk/lib/SQLSession/Action/DoSQL.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/SQLSession/Action/DoSQL.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 70 by dpavlin, Thu Jan 25 21:16:06 2007 UTC revision 99 by dpavlin, Fri Feb 16 22:20:41 2007 UTC
# Line 26  use Jifty::Action schema { Line 26  use Jifty::Action schema {
26                  ajax canonicalizes,                  ajax canonicalizes,
27                  is mandatory;                  is mandatory;
28                    
29          param database =>          param on_database =>
30                  label is 'Database',                  label is 'Database',
31                  render as 'Select',                  render as 'Select',
32  #               available are qw( test foo bar );  #               available are qw( test foo bar );
# Line 62  sub validate_sql_query { Line 62  sub validate_sql_query {
62          }          }
63  }  }
64    
65  use SQL::ReservedWords;  use SQLSession::Utils;
66    
67  sub canonicalize_sql_query {  sub canonicalize_sql_query {
68          my $self = shift;          my $self = shift;
69          my $sql = shift;          my $sql = shift;
70    
71          my @words = SQL::ReservedWords->words;          $sql = Jifty->app_class('Utils')->reformat_sql( $sql );
72    
73          my $w = join('|', @words);          Jifty->log->debug("cannonicaze SQL: $sql");
   
         $w .= '|limit|offset';  # fixup  
   
         warn "original SQL:\t$sql";  
   
         $sql =~ s/([\b^'])($w)\1/uc($2)/egis;  
   
         warn "canonicalize SQL:\t$sql";  
74    
75          return $sql;          return $sql;
76  }  }
# Line 94  sub take_action { Line 86  sub take_action {
86            
87      # Custom action code      # Custom action code
88    
89          my $database = $self->argument_value('database') || $self->form_value('database');          my $on_database = $self->argument_value('on_database') || $self->form_value('on_database');
90          warn "database: $database\n";          warn "on_database: $on_database\n";
91    
92          my $db = SQLSession::Model::Database->new;          my $db = SQLSession::Model::Database->new;
93          $db->load_by_cols( id => $database ) ||          $db->load_by_cols( id => $on_database ) ||
94                  $self->result->error("Can't find database $database");                  $self->result->error("Can't find database $on_database");
95    
96          my $dbh = DBI->connect( $db->dsn, $db->login, $db->passwd ) ||          my $dbh = DBI->connect( $db->dsn, $db->login, $db->passwd ) ||
97                  $self->result->error("Can't connect to " . $db->dsn . " as " . $db->login . "<br/>" . $DBI::errstr) && return 0;                  $self->result->error("Can't connect to " . $db->dsn . " as " . $db->login . "<br/>" . $DBI::errstr) && return 0;

Legend:
Removed from v.70  
changed lines
  Added in v.99

  ViewVC Help
Powered by ViewVC 1.1.26