Joe V
Joe V

Reputation: 11

Perl DBI Can't work out what driver to use

So I am attempting to connect to a database on an end device from one of my servers, however I'm getting the following error:

Can't connect to data source '<user>' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at <script> line 18

My lines of code are the following. I removed some private information of course.

my $sHDS = shift || "<host>";
my @rows;
my $cust = '<customer name>';
my $dsn = 'dbi:Sybase:' . $sHDS;
my $user = '<user>';
my $pass = '<password>';

my $hDb = DBI::connect($dsn, $user, $pass)
or die "Can not connect to ICM Database $DBI::errstr";

Anyone see where I am going wrong?

Upvotes: 1

Views: 4166

Answers (1)

mob
mob

Reputation: 118635

The correct call has the format

DBI->connect($dsn, $user, $password)

which is subtly but significantly different from

DBI::connect($dsn, $user, $password)

The first call is equivalent to the call

DBI::connect( 'DBI', $dsn, $user, $password )

and the connect function in DBI actually expects your dsn to be specified in the 2nd argument it receives.

Upvotes: 9

Related Questions