[BACK]Return to dbops.pm CVS log [TXT][DIR] Up to [local] / wpscripts / epickup

File: [local] / wpscripts / epickup / dbops.pm (download)

Revision 1.1, Fri Jun 3 09:28:47 2011 UTC (11 years, 4 months ago) by yason
Branch point for: MAIN

Initial revision

#!/usr/bin/perl
use DBI;
use strict;
use conv; # to_local()
package dbops;

our $EPD_ZAYAVKA_T = 0;
our $EPD_PROBA_T = 1;

our $server = "MSSQL";
our $user = "it_men";
our $pass = "itmen712";
our $dsn = "DBI:Sybase:server=$server";
our $table = 'T$_EPD_File';
our $dbh;
our $sth;

sub connect()
{
    $dbh = DBI->connect($dsn, $user, $pass) or die "unable to connect to server $DBI::errstr";
}


sub select()
{
    $dbh->do("use Manager");
}


sub disconnect()
{
    $dbh->disconnect();
}


sub fetch($)
{
    my $file_type = shift;
    my $i = 0;
    my @ID;
    my @win_paths;
    
    
    $sth = $dbh->prepare ("SELECT ID,win_path FROM $table WHERE File_type=$file_type AND Ready=1 AND Backed_up=0")
	or die("fetch");

    $sth->execute( ) or die "unable to execute query! error $DBI::errstr";
    
    while( ($ID[$i], $win_paths[$i]) = $sth->fetchrow_array() )
    {
	if ($win_paths[$i] ne '')
	{
	    # reuse with real unix path
	    $win_paths[$i] = conv::to_local($win_paths[$i]);
	    
	    # NOT checking existence of file here
	}
	else
	{
	    log::stdout("fetch(): void element $win_paths[$i]\n");
	}

	$i++;
    }
    
    $sth->finish();
    
    return( (\@ID, \@win_paths) );

} # fetch()


sub set($$$)
{
    my $ID = shift;
    my $field = shift;
    my $value = shift;
    
    $sth = $dbh->prepare ("UPDATE $table SET $field=$value WHERE ID=$ID");
    $sth->execute() or die "unable to update table! error $DBI::errstr";
    
    # Notreached if error
    
    $sth->finish();

}


sub fixate($)
{
    my $ID = shift;


    $sth = $dbh->prepare ("UPDATE $table SET Backed_up=1 WHERE ID=$ID");
    $sth->execute() or die "unable to update table! error $DBI::errstr";
    
    $sth->finish();
}


sub markok($)
{
    my $ID = shift;

    
    $sth = $dbh->prepare ("UPDATE $table SET Backed_up=1 WHERE ID=$ID");
    $sth->execute() or die "unable to update table! error $DBI::errstr";
    
    $sth->finish();
}

return(1);