Win32::SqlServer::DTS::TaskTypes - a Perl abstract class to convert DTSTask types to Win32::SqlServer::DTS::Task types.


Win32-SqlServer-DTS documentation Contained in the Win32-SqlServer-DTS distribution.

Index


Code Index:

NAME

Top

Win32::SqlServer::DTS::TaskTypes - a Perl abstract class to convert DTSTask types to Win32::SqlServer::DTS::Task types.

SYNOPSIS

Top

    use Win32::SqlServer::DTS::TaskTypes;

	# $task is a DTSTask object
    print Win32::SqlServer::DTS::TaskTypes::convert($task->CustomTaskID), "\n";

DESCRIPTION

Top

Win32::SqlServer::DTS::TaskTypes convert a value from the CustomTaskID method from a DTSTask object to the respective type of a Win32::SqlServer::DTS::Task object. Since the types names are not exactly the same, this abstract class is a helper to convert those types based on a hardcoded hash table.

One should use this class only if intends to extend the DTS API or create a factory.

EXPORT

Nothing.

METHODS

convert

Expects the string returned from the CustomTaskID from a DTSTask object. Returns a string with of the respective Win32::SqlServer::DTS::Task.

Beware that not all types of DTSTask objects are implemented yet. The method will return undef on those cases.

Available types are

* DTSDataPumpTask
* DTSDynamicPropertiesTask
* DTSExecutePackageTask
* DTSSendMailTask

get_perl_types

Returns all known task types from Perldts perspective as an array reference.

get_types

Returns all known task types from MS SQL Server DTS API perspective as an array reference.

SEE ALSO

Top

* MSDN on Microsoft website and MS SQL Server 2000 Books Online are a reference about using DTS' object hierarchy, but you will need to convert examples written in VBScript to Perl code.
* Win32::SqlServer::DTS::Task and it's subclasses modules.

AUTHOR

Top

Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>

COPYRIGHT AND LICENSE

Top


Win32-SqlServer-DTS documentation Contained in the Win32-SqlServer-DTS distribution.
package Win32::SqlServer::DTS::TaskTypes;

use 5.008008;
use strict;
use warnings;
use Carp qw(cluck confess);

our $VERSION = '0.03';

our %type_convertion = (

    DTSDataPumpTask          => 'DataPump',
    DTSDynamicPropertiesTask => 'DynamicProperty',
    DTSExecutePackageTask    => 'ExecutePackage',
    DTSSendMailTask          => 'SendEmail'
);

sub convert {

    my $type = shift;

    confess 'Type is an expected parameter' unless ( defined($type) );

    if ( exists( $type_convertion{$type} ) ) {

        return $type_convertion{$type};

    }
    else {

        cluck "type $type is unknow";

        return undef;

    }

}

sub get_perl_types {

    return [ values(%type_convertion) ];

}

sub get_types {

    return [ keys(%type_convertion) ];

}

1;

__END__