Hello

I am trying to rationalize some of my code and would like to use a set of
common functions which do database stuff using DBI.

The most logical way for me to do this would be to create a 'GetDBHandle'
function which passes back a handle to the database connection which can
then be passed to other functions which involve individual common queries.

Bearing in mind that:

a) I am unfamiliar with OO principals in perl
b) I am a bit rusty on perl modules in general
c) as well as wanting to do this properly I would like to keep it as simple
as required

could anyone give me pointers for things to bear in mind.

I'm looking at something like the following:

###############################################################

use strict;
use warnings;
use DBI;
use DBD::ODBC; # can this live solely in the module?
use Common::CSAdmin; # this is my module

my $dbh = GetDBHandle('DSN');

my $sql = <<EOF;

SELECT Test FROM tblTest

EOF

my $sth = $dbh->prepare($sql);

$sth->execute() or die "$!";

while (my ($test) = $sth->fetchrow) {
        print $test . "\n";
}

$sth->finish;

################################################################

which calls

#################################################################

package Common::CSAdmin;

use strict;
use warnings;

use DBI;
use DBD::ODBC;

sub GetDBHandle($)  {}

sub GetDBHandle($) {
        my $dsn = shift(@_);
        my ($dbusr,$dbpwd,$server,$dbh);
        $dbusr = 'usr';
        $dbpwd = 'pwd';
        $server = 'server';
        $dbh = DBI-> connect("DBI:ODBC:$dsn", $dbusr, $dbpwd, {RaiseError => 1,
PrintError => 1})  || die "Could not connect to datasource $dsn";
        return $dbh;
}

1;

#####################################################################

but to start with I am getting the following

Subroutine GetDBHandle redefined at D:\Code\iis/Common/CSAdmin.pm line 11.
Undefined subroutine &main::GetDBHandle called at testcsadmin.pl line 7.

which I'm not sure about. Aside from this I guess I have to do something a
bit more clever with the returning of $dbh but I am having trouble finding
examples. Any thoughts?

Thanks
Mark















_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to