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 )