Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > SGBD
SGBD Toutes vos questions sur l'interaction entre Perl et les bases de données (SQL, mysql, postgresql, ORACLE, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/02/2012, 09h56   #1
benji1000
Candidat au titre de Membre du Club
 
Homme Benjamin
Étudiant
Inscription : juin 2011
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 25
Points : 11
Points : 11
Par défaut [SQL Serveur] Effectuer une requête SQL en Perl

Bonjour,

je rencontre le problème suivant lorsque je tente d'effectuer une requête SQL sur une base SQL Server 2000 :

Code :
1
2
DBI connect() failed: [Microsoft][Gestionnaire de pilotes ODBC]
Source de données introuvable et nom de pilote non spécifié (SQL-IM002)
J'ai cru comprendre au fil de mes lectures sur Internet qu'il me manquait un module ou connecteur pour le SQL Server, mais je m'y perds un peu ! J'ai lu ce tuto (http://djibril.developpez.com/tutoriels/perl/perl-dbi/) et divers autres, mais sans effet. Il semble y avoir un problème de connectivité avec la base. Voilà mon code (j'ai masqué les données "sensibles" par xxx) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
!/usr/bin/perl
 
use DBI;
use DBD::ODBC;
 
# Données de connexion à la base
$bd     = 'xxx';
$hote     = 'xxx';
$port    = 'xxx';
$login    = 'xxx';
$mdp    = 'xxx';
 
# Source de données
$dsn ="DBI:ODBC:SQL Server:$bd:[$hote:$port]";
 
# Tentative de connection à la base de données
$dbh=DBI->connect($dsn,$login,$mdp);
 
# Requête SQL
$requete = "SELECT xxx";
 
# Préparation de la requête
$sth=$dbh->prepare($requete);
 
# Exécution de la requête
$cr=$sth->execute([@valeurs]); 
 
# Termine le traitement, libère les ressources
$sth->finish ;
 
# Déconnection du serveur
$dbh->disconnect;
Oui, pour l'instant je n'exploite pas les données que je récupère avec mon SELECT, mais j'aimerais d'abord réussir à accéder à la BDD ^^

Merci d'avance pour votre aide !
benji1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2012, 15h58   #2
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 484
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 484
Points : 31 588
Points : 31 588
Arrives-tu à y accéder via Excel ? Es-tu sûr d'avoir effectuer les bons paramétrage sur ton poste Windows ?
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2012, 16h03   #3
benji1000
Candidat au titre de Membre du Club
 
Homme Benjamin
Étudiant
Inscription : juin 2011
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 25
Points : 11
Points : 11
Euh, je ne sais pas ! Je n'ai jamais essayé d'y accéder via Excel (d'ailleurs, je ne saurais pas comment faire). Par contre, j'ai déjà réussi à y accéder via mon poste de travail, en utilisant l'utilitaire DbaMgr2k.

Concernant les paramètres de mon poste de travail : je ne sais pas, mais s'il y en a à faire, c'est ce que j'aimerais bien savoir
benji1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2012, 17h06   #4
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 484
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 484
Points : 31 588
Points : 31 588
Citation:
[Microsoft][Gestionnaire de pilotes ODBC]
Source de données introuvable et nom de pilote non spécifié (SQL-IM002)
Le message t'indique qu'il ne trouve pas la source de données.
Sur ton poste, dans outil d'administration -> sources de données ODBC, as-tu configuré ta source ? Sans ça, impossible de se connecter en Perl (ou d'autres langages) via ODBC.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2012, 17h21   #5
benji1000
Candidat au titre de Membre du Club
 
Homme Benjamin
Étudiant
Inscription : juin 2011
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 25
Points : 11
Points : 11
Effectivement, je n'avais pas pensé à ça ! Je pensais qu'on pouvait le faire directement depuis nos scripts (d'où le $dsn).

Je teste ça dès demain au bureau et je te tiens au courant merci.
benji1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2012, 10h02   #6
benji1000
Candidat au titre de Membre du Club
 
Homme Benjamin
Étudiant
Inscription : juin 2011
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2011
Messages : 25
Points : 11
Points : 11
Ça ne fonctionne toujours pas j'ai configuré une source de données "Utilisateur" et une source de données "système" (je savais pas la différence entre les deux). À la fin de ma configuration, je fais un test, et j'obtiens ça :

C'est bizarre, je pense que je suis pas loin du but... Peut-être que les paramètres de mon script sont ma configurés ? Pour rappel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
use DBI;
use DBD::ODBC;
 
# Données de connexion à la base
$plateforme    = 'ODBC:SQL Server';
# Autres paramètres genre login, mdp, hote, port...
 
# Source de données
$dsn ="DBI:$plateforme:$bd:[$hote:$port]";
 
# Tentative de connection à la base de données
$dbh=DBI->connect($dsn,$login,$mdp);
Même message d'erreur.
benji1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 12h01   #7
socaw
Nouveau Membre du Club
 
Homme
Inscription : mars 2010
Messages : 84
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2010
Messages : 84
Points : 35
Points : 35
Je suis dans la même situation que benji1000 :
Citation:
DBI connect() failed: [Microsoft][Gestionnaire de pilotes ODBC]
Source de données introuvable et nom de pilote non spécifié (SQL-IM002)
Sous XP mon script fonctionne sans problème mais pas sous Seven et je précise que j'ai configuré la source de données dans l'outil administration de Windows.

Voilà mon code :
Code :
1
2
3
# CONNEXION A LA BASE DE DONNEES ACCESS
my $path = 'C:/dossier/bdd2010.mdb';
my $dbhA = DBI->connect("dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=$path") or die "Echec de connexion";
Mon environnement de travail est Wamp et Active Perl 5.10 sous XP et 5.16 sous Seven. Quelqu'un a une idée ?
socaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 16h46   #8
socaw
Nouveau Membre du Club
 
Homme
Inscription : mars 2010
Messages : 84
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2010
Messages : 84
Points : 35
Points : 35
Après moultes vérifications, j'ai installé Perl en 32bits et je n'ai plus de problème de connexion à Access et je n'ai rien du changer d'autre.
socaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web