Orac-alpha
view release on metacpan or search on metacpan
db/orac_Sybase.pm view on Meta::CPAN
my $l3 = $d->Label(-text=>"For load", justify=>"left");
my $ps_f = $d->Checkbutton(-variable=>\$forload,
-cursor=>undef,
-offvalue=>'',
-onvalue=>'for load')->pack();
my $l4 = $d->Label(-text=>"Database Devices", justify=>"left");
my $l5 = $d->Label(-text=>"Name", justify=>"left");
my $l6 = $d->Label(-text=>"Max Size", justify=>"left");
my $l7 = $d->Label(-text=>"Data", justify=>"left");
my $l8 = $d->Label(-text=>"Log", justify=>"left");
my $dev;
my $ps_d = $d->Optionmenu(-options=> [sort keys %devices],
-command=>sub {$size = $devices{$dev}},
-textvariable=>\$dev)->pack();
my $ps_s = $d->add("Entry",-cursor=>undef,
-textvariable=>\$size,
-foreground=>$main::fc,
-background=>$main::ec,
-justify=>'right')->pack();
my $ps_op = $d->Radiobutton(-variable=>\$type,
-cursor=>undef,
-value=>'data')->pack();
my $ps_op1 = $d->Radiobutton(-variable=>\$type,
-cursor=>undef,
-value=>'log')->pack();
my $ps_ls = $d->Listbox()->pack();
my $ps_ba = $d->Button(-text=>'Add',
-command=> sub{$ps_ls->insert('end', $dev.' 'x(35 - length($dev)).$size.' 'x(16 - length($size)).$type)})->pack();
my $ps_br = $d->Button(-text=>'Remove',
-command=> sub{$ps_ls->delete($ps_ls->curselection) if (defined($ps_ls->curselection))})->pack();
for (@listData) {
$ps_ls->insert("end", $_);
}
Tk::grid($l1,-row=>0,-column=>0,-sticky=>'e');
Tk::grid($ps_n,-row=>0,-column=>1,-sticky=>'ew');
Tk::grid($l2,-row=>1,-column=>0,-sticky=>'e');
Tk::grid($ps_o,-row=>1,-column=>1,-sticky=>'ew');
Tk::grid($l3,-row=>2,-column=>1,-sticky=>'w');
Tk::grid($ps_f,-row=>2,-column=>0,-sticky=>'e');
Tk::grid($l4,-row=>3,-column=>0,-rowspan=>2,-sticky=>'w');
Tk::grid($l5,-row=>5,-column=>0,-sticky=>'w');
Tk::grid($l6,-row=>5,-column=>1,-sticky=>'w');
Tk::grid($l7,-row=>5,-column=>2,-sticky=>'w');
Tk::grid($l8,-row=>5,-column=>3,-sticky=>'w');
Tk::grid($ps_d,-row=>6,-column=>0,-sticky=>'ew');
Tk::grid($ps_s,-row=>6,-column=>1,-sticky=>'w');
Tk::grid($ps_op,-row=>6,-column=>2,-sticky=>'w');
Tk::grid($ps_op1,-row=>6,-column=>3,-sticky=>'w');
Tk::grid($ps_ba,-row=>6,-column=>4,-sticky=>'ew');
Tk::grid($ps_br,-row=>7,-column=>4,-sticky=>'nw');
Tk::grid($ps_ls,-row=>7,-column=>0,-columnspan=>4,-sticky=>'ew');
$d->gridRowconfigure(1,-weight=>1);
my $button = $d->Show;
my $i;
my ($data, $log) = (' on', ' log on');
for $i (0..$ps_ls->size - 1) {
push @listData, $ps_ls->get($i);
my ($devTmp, $sizeTmp, $typeTmp) = split(/\s+/, $ps_ls->get($i));
$data .= " $devTmp = $sizeTmp," if ($typeTmp eq 'data');
$log .= " $devTmp = $sizeTmp," if ($typeTmp eq 'log');
}
$data =~ s/,$//g; $log =~ s/,$//g;
$log = '' if ($log eq ' log on');
my($cmd) = sprintf "create database %s %s %s %s\n", $dbname, $data, $log, $forload;
if ($button eq 'Show SQL') {
$self->show_sql_dialog($main::lg{db_crt}, $cmd, $d);
$self->create_database ($dbname, $dbowner, $forload, @listData);
} elsif ($button eq 'Create') {
$sth = $self->{Database_conn}->prepare( $cmd ) || die $self->{Database_conn}->errstr;
$sth->execute;
$self->f_clr( $main::v_clr );
}
}
sub create_index {
my $self = shift;
my ($dbname, $tbname, $tbownerGl, $tbsegmentGl, @colDataGl) = @_;
$self->f_clr( $main::v_clr );
my ($row, $size, $type, $i);
my ($colName,$dttype, $colLength,$tbsegment, $tbowner, $colPrec, $colScale, $colNull);
my ($ps_tbname);
my @row = ();
my @colData = ();
my @db = ();
my $cm = $self->f_str('Tables' ,'1');
my $sth = $self->{Database_conn}->prepare( $cm ) ||
die $self->{Database_conn}->errstr;
$sth->execute;
while($row = $sth->fetchrow){
push @db, $row
}
$sth->finish;
my $d = $main::mw->DialogBox(-title => $main::lg{ind_crt},
-buttons => ["Next", "Cancel"]);
my $l1 = $d->Label(-text=>"Database:", justify=>"right");
$dbname= 'Select Database' unless ($dbname ne '');
my $ps_dbname = $d->Optionmenu(-options=> [@db],
-command=>sub {
# Will throw that into a separate function later
$self->{Database_conn}->do("use $dbname");
$cm = $self->f_str('Tables', 2);
$sth = $self->{Database_conn}->prepare($cm) ||
db/orac_Sybase.pm view on Meta::CPAN
-state=>'disabled')->pack();
$ps_nulls = $d->Optionmenu(-options=> ["NULL", "NOT NULL", "IDENTITY"],
-command=> sub {},
-textvariable=>\$colNull)->pack();
my $ps_ls = $d->Listbox()->pack();
my $ps_ba = $d->Button(-text=>'Add',
-command=> sub{
$ps_ls->insert('end',
$colName.' 'x(22 - length($colName)).
$dttype.' 'x(26 - length($dttype)).
$colLength.' 'x(24 - length($colLength)).
$colPrec.' 'x(25 - length($colPrec)).
$colScale.' 'x(17 - length($colScale)).
$colNull);
$ps_length->configure(-background=>$main::sc,
-state=>'disabled');
$ps_prec->configure(-background=>$main::sc,
-state=>'disabled');
$ps_scale->configure(-background=>$main::sc,
-state=>'disabled');
$colLength = $colPrec = $colScale = $colName = '';
$dttype = 'Select Datatype';
})->pack();
my $ps_br = $d->Button(-text=>'Remove',
-command=> sub{
$ps_ls->delete($ps_ls->curselection) if (defined($ps_ls->curselection));
$ps_length->configure(-background=>$main::sc,
-state=>'disabled');
$ps_prec->configure(-background=>$main::sc,
-state=>'disabled');
$ps_scale->configure(-background=>$main::sc,
-state=>'disabled');
})->pack();
Tk::grid($l1,-row=>0,-column=>0,-sticky=>'e');
Tk::grid($ps_tbname,-row=>0,-column=>1,-sticky=>'ew');
Tk::grid($l2,-row=>0,-column=>2,-sticky=>'e');
Tk::grid($ps_dbname,-row=>0,-column=>3,-sticky=>'ew');
Tk::grid($l3,-row=>1,-column=>0,-sticky=>'e');
Tk::grid($ps_tbowner,-row=>1,-column=>1,-sticky=>'ew');
Tk::grid($l4,-row=>1,-column=>2,-sticky=>'e');
Tk::grid($ps_segment,-row=>1,-column=>3,-sticky=>'ew');
Tk::grid($l14,-row=>3,-column=>0,-rowspan=>2, -sticky=>'w');
Tk::grid($l5,-row=>5,-column=>0,-sticky=>'w');
Tk::grid($l6,-row=>5,-column=>1,-sticky=>'w');
Tk::grid($l7,-row=>5,-column=>2,-sticky=>'w');
Tk::grid($l8,-row=>5,-column=>3,-sticky=>'w');
Tk::grid($l9,-row=>5,-column=>4,-sticky=>'w');
Tk::grid($l10,-row=>5,-column=>5,-sticky=>'w');
Tk::grid($ps_colname,-row=>6,-column=>0,-sticky=>'ew');
Tk::grid($ps_dttype,-row=>6,-column=>1,-sticky=>'ew');
Tk::grid($ps_length,-row=>6,-column=>2,-sticky=>'w');
Tk::grid($ps_prec,-row=>6,-column=>3,-sticky=>'ew');
Tk::grid($ps_scale,-row=>6,-column=>4,-sticky=>'w');
Tk::grid($ps_nulls,-row=>6,-column=>5,-sticky=>'ew');
Tk::grid($ps_ba,-row=>6,-column=>6,-sticky=>'ew');
Tk::grid($ps_br,-row=>7,-column=>6,-sticky=>'nw');
Tk::grid($ps_ls,-row=>7,-column=>0,-columnspan=>6,-sticky=>'ew');
$d->gridRowconfigure(1,-weight=>1);
for (@colDataGl) {
$ps_ls->insert("end", $_);
}
my $button = $d->Show;
my($cmd) = sprintf "CREATE TABLE %s.%s (", $tbowner,$tbname;
@colDataGl = ();
for $i (0..$ps_ls->size - 1) {
push @colDataGl, $ps_ls->get($i);
@colData = split(/\s\s+/, $ps_ls->get($i));
$cmd .= "\n";
# If int or some pre-defined length datatype
if ($#colData == 2) {
$cmd .= join("\t", @colData);
} elsif ($#colData == 4) { # Numeric or decimal
$cmd .= "$colData[0]\t$colData[1]($colData[2],$colData[3])\t$colData[4]";
} elsif ($#colData == 3){ # whatever
$cmd .= "$colData[0]\t$colData[1]($colData[2])\t$colData[3]";
}
$cmd .=",";
}
$cmd =~ s/\,$//g;
$cmd .= ")\n";
$cmd .= "ON \"$tbsegment\"\n" if ($tbsegment ne '' && $tbsegment ne 'Select Segment');
if ($button eq 'Show SQL') {
$self->show_sql_dialog($main::lg{tbl_crt}, $cmd, $d);
$self->create_table ($dbname, $tbname, $tbowner, $tbsegment, @colDataGl);
} elsif ($button eq 'Create') {
$self->{Database_conn}->do("use $dbname");
$self->{Database_conn}->do($cmd);
$self->{Database_conn}->do("grant all on $tbname to $tbowner") if ($tbowner ne '' && $tbowner ne 'Select User');
$self->f_clr( $main::v_clr );
}
}
sub show_server_info {
my $self = shift;
main::bz();
# Get Server name
my $cm = "select \@\@servername";
my $sth = $self->{Database_conn}->prepare($cm) || die $self->{Database_conn}->errstr;
$sth->execute;
my $srvname = $sth->fetchrow();
$sth->finish;
# Get the rest of the information
$cm = "select \@\@version";
$sth = $self->{Database_conn}->prepare($cm) || die $self->{Database_conn}->errstr;
$sth->execute;
my $tmpData = $sth->fetchrow();
db/orac_Sybase.pm view on Meta::CPAN
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l10 = $d->Label(-text=>"Total Read:", justify=>"right");
my $ps10 = $d->add("Entry",-cursor=>undef,
-textvariable=>\$data[9],
-state=>'disabled',
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l11 = $d->Label(-text=>"Total Write:", justify=>"right");
my $ps11= $d->add("Entry",-cursor=>undef,
-textvariable=>\$data[10],
-state=>'disabled',
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l12 = $d->Label(-text=>"Total Errors:", justify=>"right");
my $ps12 = $d->add("Entry",-cursor=>undef,
-textvariable=>\$data[11],
-state=>'disabled',
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l13 = $d->Label(-text=>"Total Connections:", justify=>"right");
my $ps13 = $d->add("Entry",-cursor=>undef,
-textvariable=>\$data[12],
-state=>'disabled',
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l0 = $d->Label(-text=> "* Value Since Reboot / Value Since Last Run", justify=>"right");
Tk::grid($l1,-row=>0,-column=>0,-sticky=>'e');
Tk::grid($ps1,-row=>0,-column=>1,-sticky=>'ew');
Tk::grid($l2,-row=>1,-column=>0,-sticky=>'e');
Tk::grid($ps2,-row=>1,-column=>1,-sticky=>'ew');
Tk::grid($l3,-row=>2,-column=>0,-sticky=>'e');
Tk::grid($ps3,-row=>2,-column=>1,-sticky=>'e');
Tk::grid($l4,-row=>3,-column=>0,-sticky=>'e');
Tk::grid($ps4,-row=>3,-column=>1,-sticky=>'ew');
Tk::grid($l5,-row=>4,-column=>0,-sticky=>'e');
Tk::grid($ps5,-row=>4,-column=>1,-sticky=>'ew');
Tk::grid($l6,-row=>5,-column=>0,-sticky=>'e');
Tk::grid($ps6,-row=>5,-column=>1,-sticky=>'ew');
Tk::grid($l7,-row=>6,-column=>0,-sticky=>'e');
Tk::grid($ps7,-row=>6,-column=>1,-sticky=>'ew');
Tk::grid($l8,-row=>7,-column=>0,-sticky=>'e');
Tk::grid($ps8,-row=>7,-column=>1,-sticky=>'ew');
Tk::grid($l9,-row=>8,-column=>0,-sticky=>'e');
Tk::grid($ps9,-row=>8,-column=>1,-sticky=>'ew');
Tk::grid($l10,-row=>9,-column=>0,-sticky=>'e');
Tk::grid($ps10,-row=>9,-column=>1,-sticky=>'ew');
Tk::grid($l11,-row=>10,-column=>0,-sticky=>'e');
Tk::grid($ps11,-row=>10,-column=>1,-sticky=>'ew');
Tk::grid($l12,-row=>11,-column=>0,-sticky=>'e');
Tk::grid($ps12,-row=>11,-column=>1,-sticky=>'ew');
Tk::grid($l13,-row=>12,-column=>0,-sticky=>'e');
Tk::grid($ps13,-row=>12,-column=>1,-sticky=>'ew');
Tk::grid($l0,-row=>15,-column=>0,-rowspan=>3, -columnspan=>2, -sticky=>'ew');
$d->gridRowconfigure(1,-weight=>1);
my $button = $d->Show;
$self->f_clr( $main::v_clr );
}
sub show_sql_dialog {
my $self = shift;
my($title, $cmd, $parent) = @_;
my $d = $parent->DialogBox(-title => "$title",
-buttons => ["Dismiss"]);
my $l1 = $d->Label(-text=> $cmd, -justify=> "left")->pack();
$d->Show();
}
# Replication Server Section (for fututre use)
sub create_subscription {
my $self = shift;
my ($dtype, $lname, $pname, $size) = @_;
main::bz();
my $d = $main::mw->DialogBox(-title => $main::lg{dev_dump_crt}, -buttons => ["Create", "Cancel", "Show SQL"]);
my $l1 = $d->Label(-text=> "Subscription Database:", justify=>"right");
my $ps_l = $d->add("Entry",-cursor=>undef,
-textvariable=>\$lname,
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l2 = $d->Label(-text=>"Subscription name:", justify=>"right");
my $ps_p = $d->add("Entry",-cursor=>undef,
-textvariable=>\$pname,
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l3 = $d->Label(-text=>"Definition Name:", justify=>"right");
my $ps_s = $d->add("Entry",-cursor=>undef,
-textvariable=>\$size,
-foreground=>$main::fc,
-background=>$main::ec)->pack();
my $l4 = $d->Label(-text=>"Materialization:", justify=>"right");
my $ps_d = $d->Radiobutton(variable=>\$dtype,
text=>'bulk',
value=>'bulk')->pack();
my $ps_d1 = $d->Radiobutton(variable=>\$dtype,
text=>'empty',
value=>'empty')->pack();
Tk::grid($l1,-row=>0,-column=>0,-sticky=>'e');
Tk::grid($ps_l,-row=>0,-column=>1,-sticky=>'ew');
Tk::grid($l2,-row=>1,-column=>0,-sticky=>'e');
Tk::grid($ps_p,-row=>1,-column=>1,-sticky=>'ew');
Tk::grid($l3,-row=>2,-column=>0,-sticky=>'e');
( run in 1.180 second using v1.01-cache-2.11-cpan-cd2fffc590a )