IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Connexion avec MsACCESS via ODBC


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut Connexion avec MsACCESS via ODBC
    Bonjour à tous.

    Je dois me connecter à une 2ème BDD (Access) pour de la lecture sur certaines tables. La BD se trouve sur R:\toto.mdb

    J'ai créé une source de données ODBC telle que :
    Nom de la source : TOTO
    base de donnée : R:\toto.mdb
    Il n'y a pas de login et mot de passe

    Donc dans un fichier php, je fait :
    $con=odbc_connect("GESCOF","","");
    $query = "SELECT clients.NumClients, clients.RaisonSociale, clients.Adresse1, clients.CPClt, clients.VilleClt ";
    $query .= "FROM clients";

    $result = odbc_exec($con,$query);

    PHP me répond que :
    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié, SQL state IM002 in SQLConnect in c:\wamp\www\intranetasfo\WEB-INF\classes\MdlClient.php on line 40

    Donc il ne trouve pas mon ODBC. Pourtant je vois que TOTO utilise le pilote Ms Access Driver (mdb).

    Qu'ai-je oublié ?

    Merci pour vos éclaircissements.

    Benat.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    chaine de connexion ?

  3. #3
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    J'ai créé une source de données ODBC telle que :
    Nom de la source : TOTO
    base de donnée : R:\toto.mdb
    Il n'y a pas de login et mot de passe

    Donc dans un fichier php, je fait :
    $con=odbc_connect("GESCOF","","");
    $query = "SELECT clients.NumClients, clients.RaisonSociale, clients.Adresse1, clients.CPClt, clients.VilleClt ";
    $query .= "FROM clients";
    où indique tu au php de se connecter à TOTO ?....

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par dj-julio
    J'ai créé une source de données ODBC telle que :
    Nom de la source : TOTO
    base de donnée : R:\toto.mdb
    Il n'y a pas de login et mot de passe

    Donc dans un fichier php, je fait :
    $con=odbc_connect("GESCOF","","");
    $query = "SELECT clients.NumClients, clients.RaisonSociale, clients.Adresse1, clients.CPClt, clients.VilleClt ";
    $query .= "FROM clients";
    où indique tu au php de se connecter à TOTO ?....
    Effectivement j'ai fait trop vite le copier/coller.
    Le nom de la source ODBC est GESCOF
    et je l'appelle bien en faisant : $con=odbc_connect("GESCOF","","");

    Je ne pense pas être obligé de définir le la chaine complète puisque elle a été faite dans l'ODBC.

    Merci pour vos réponses

    Benat

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    DSN=source_de_donnée ?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par MacReiben
    DSN=source_de_donnée ?
    Oui

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    non mais la syntaxe c'est : DSN=mySystemDSN

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par MacReiben
    non mais la syntaxe c'est : DSN=mySystemDSN
    Pardon mais je ne comprends pas.
    Quand je créé le lien ODBC dans outils d'administration de windows, il ne me demande que le nom et le lien à la BDD. Simple donc.

    Puis quand je lis la FAQ PHP, il y a une explication que j'ai suivi détaillant le cheminement à faire. (cf mon code au début).

    Mais j'ai les messages d'erreurs cités plus haut.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    k - ben... peux tu tester ta source odbc via les sources de donées ODBC de ta machine ?

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par MacReiben
    k - ben... peux tu tester ta source odbc via les sources de donées ODBC de ta machine ?
    J'ai testé ma source_ODBC en passant par Excel et cela marche.
    Donc le pb vient surement de mon code PHP.

    Une question subsidiaire :
    Je suis sous wamp, n'y a-t-il pas des lignes à spécifier dans Apache par hasard ?

    Merci de votre aide.

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Benat64
    Citation Envoyé par MacReiben
    k - ben... peux tu tester ta source odbc via les sources de donées ODBC de ta machine ?
    J'ai testé ma source_ODBC en passant par Excel et cela marche.
    Donc le pb vient surement de mon code PHP.

    Une question subsidiaire :
    Je suis sous wamp, n'y a-t-il pas des lignes à spécifier dans Apache par hasard ?

    Merci de votre aide.
    Je me réponds car j'avance doucement. En fait le pb vient du chemin "r:\toto.mdb" ne marche pas, il faut mettre le chemin absolu, à savoir : "\\\\serveur\\dossier\\toto.mdb". Donc je code directement sans passer par l'interface ODBC windows.

    $cfg_dsn = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=\\\\Pc-serveur\\Gescof\\donasfo.mdb; UserCommitSync=No; Threads=3; SafeTransactions=0; PageTimeout=5; MaxScanRows=8; MaxBufferSize=2048; DriverId=281; DefaultDir=C:/ProgramFiles/CommonFiles/ODBC/DataSources";
    $cfg_dsn_login = "";
    $cfg_dsn_mdp = "";
    $con=odbc_connect($cfg_dsn,$cfg_dsn_login,$cfg_dsn_mdp);

    Par contre j'ai un nouveu pb. Cette BDD est multi utilisateur, et il veut me l'ouvrir en exclusif d'où le message :
    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de la base de données Microsoft Jet ne peut pas ouvrir le fichier '(Inconnu)'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données., SQL state S1000 in SQLConnect

    Une idée ?

    Merci Benat

    Je précise que sur mon poste je suis en administrateur.

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    Il me semble qu'il y a un paramètre option qui permet de spécifier le mode d'ouverture de la base de données.

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par MacReiben
    Il me semble qu'il y a un paramètre option qui permet de spécifier le mode d'ouverture de la base de données.
    Et je peux le trouver où ce paramètre, dans quelle aide ?

  14. #14
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    tu peux le trouver dans la MSDN, je ne m'en souvien plus malheureusement.

    Essaie Option=3 (ou options)

Discussions similaires

  1. Connexion base access via odbc
    Par sacan dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/11/2009, 15h57
  2. [XL-2003] Connexion à une BDD via ODBC
    Par skan_one dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/07/2009, 16h24
  3. [PDO] Connexion avec PDO via le script PHP
    Par celesu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/09/2008, 17h50
  4. Réponses: 3
    Dernier message: 24/09/2007, 10h35
  5. Probléme de connexion avec ATT via une freebox
    Par ybertrand dans le forum Hardware
    Réponses: 3
    Dernier message: 17/10/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo