2010-04-19 20 views
1

J'ai téléchargé le package IBM DBI, y compris tous les packages de mon programme, comme indiqué dans les documents. J'ai catalogué la DB et peut se connecter à partir de la ligne de commande, mais mon DBI connexion échoue:Pourquoi DBI de Perl ne parvient pas à se connecter à ma base de données DB2 cataloguée?

$dbh = DBI->connect ("dbi:DB2:warehou1", user, pass) or die "Can't connect to sample database: $DBI::errstr"; 

Can't connect to sample database: [IBM][CLI Driver] SQL1031N The database directory cannot be found on the indicated file system. SQLSTATE=58031 

Répondre

2

Pensez à utiliser la full connection string quand DBI ne peut pas résoudre un nom simple de base de données:

my $string = "dbi:DB2:DATABASE=$db; HOSTNAME=$hostname; PORT=$port; PROTOCOL=TCPIP; UID=$user; PWD=$pass;"; 
my $dbh = DBI->connect($string, $user, $pass) || die "Connection failed with error: $DBI::errstr"; 
+0

J'espérais éviter d'avoir à faire cela en cataloguant tous mes DBs. – Buzkie

+2

Ensuite, vérifiez 'DBI-> data_sources ('DB2')' pour voir si votre catalogage a réussi. Le débogage du catalogage peut être très différent du débogage de l'installation de DBI. N'essayez pas de résoudre les deux problèmes à la fois. – mob