Page 1 sur 1

Lien ODBC vers base Access en réseau

Posté : 25 nov. 2006, 19:59
par neotima
Bonjour, j'ai un petit souci en me connectant à une base de donnée MS Access avec un script PHP. Je vous explique ma démarche :



- j'avais ma base de données (BDD) sur mon disque dur local.

- j'ai créé un lien ODBC avec ma base.

- j'ai fait mes scripts qui appellent la base par ce lien ODBC et tout marche parfaitement.



Seulement voilà, pour mon projet, la base doit se trouver sur un lecteur réseau connecté automatiquement lors du démarrage de ma session.

- j'ai déplacé la base sur ce lecteur réseau

- j'ai modifié le lien ODBC avec le nouveau chemin d'accès de la base



et là Problème : le lien ne marche pas

lors de la requête PHP "odbc_pconnect" j'ai un message:



Warning: odbc_pconnect() [function.odbc-pconnect]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] '(Inconnu)' n'est pas un chemin d'accès valide. Assurez-vous que le nom du chemin d'accès est correct et qu'une connexion est établie avec le serveur sur lequel réside le fichier., SQL state S1009 in SQLConnect



Configuration:

Apache 2.2

PHP 5.1.4



Je suis sur le problème depuis une semaine, j'ai épluché tout le web...

Si vous avez une solution.



(Ah oui sous Easyphp 1.7 cela marche bien --> je pense que mon apache ou php est mal configuré).



Merci d'avance.

Posté : 25 nov. 2006, 20:35
par Ajoloca
Bonjour,

As-tu installé le module ODBC de PHP?

Posté : 27 nov. 2006, 12:51
par neotima
Bonjour,

Installation standard de APACHE 2.2.2 et PHP 5.1.4.

Pour le connecteur ODBC je pense car avec ma base ACCESS en local cela fonctionne (je peux effectuer mes requête dans mon application PHP sur la base ACCESS grace au connceteur ODBC "Microsoft Access Driver (*.mdb)")

Neotima

Posté : 01 déc. 2006, 15:13
par neotima
Bonjour,

Je n'ai toujours pas trouvé de solution pour mon problème et je ne trouve rien sur le net.

Si quelqu'un a une idée...

Merci d'avance.

Neotima
:roll: :roll:

Posté : 01 déc. 2006, 15:24
par Ajoloca
Bonjour,

D'après le message d'erreur, ton pilote ODBC n'est pas reconnu.

Essaie de créer un nouveau pilote (pas de modifier l'existant).

Posté : 01 déc. 2006, 15:31
par neotima
Je l'ai déjà fait mais cela ne marche pas.

Je ne sais plus quoi faire.

Je me dirige vers la configuration du fichier php.ini ou http.conf.

Je fais une comparaison avec les fichiers d'easyphp car avec lui mais liens ODBC réseau fonctionnent.

Mais je ne trouve pas de différence concernant ODBC.

Neotima :(

Posté : 01 déc. 2006, 15:44
par neotima
J'ai une question concernant ta remarque Ajoloca sur le module ODBC
(je précise : apache et PHP sur windows 2000 server)
As-tu installé le module ODBC de PHP?
Peut préciser??

Merci

Posté : 01 déc. 2006, 16:53
par Ajoloca
Re,

ODBC est un connecteur qu'il est néccessaire d'installer, je n'ai pas insisté du fait que tu m'as dit que ça fonctionnait.

Pour plus de détails regarde cette page

Posté : 01 déc. 2006, 17:33
par neotima
Re,

Oui ca fonctionne très bien avec une base en local, c'est pour ça que j'ai dit ça mais comme en réseau, ça marche pas, je prends toutes les pistes possibles...

Je viens de regarder le site http://www.mysql.com/products/connector/ mais

J'ai installer les différents connecteur mais j'ai toujours le même problème.

Je suis vraiment coincé car mon application est terminé (fonctionne le local) et je ne peut la mettre en production car je coince avec mon connecteur ODBC vers base ACCESS.

Posté : 01 déc. 2006, 17:45
par Ajoloca
Re,

Je ne serais pas en mesure de te dire exactement comment accéder à une base ACCESS qui est sur un lecteur réseau (QQ que soit le langage utilisé).

Je sais que tu as besoin du connecteur, de déclarer ton DSN, mais mes compétence ACCESS se limitent à savoir que ça existe.

Posté : 01 déc. 2006, 17:57
par neotima
Merci de ton aide...

Je vais continuer mais recherche mais je ne crois pas que le problème vient d'access.

Je pense que cela doit venir de la configration d'apache ou php...


Encore merci...

Neotima

re

Posté : 01 déc. 2006, 21:38
par Frantz
Salut,

Tu as un driver qui s'appelle Myodbc si tu faire
communiquer deux base Access et Mysql et si j'ai bien
compris ton prob.

@+

Posté : 04 déc. 2006, 12:43
par neotima
Bonjour Frantz,

En fait je veux juste attaquer ma base access (insert, update, delete) depuis mon application PHP.
Actuellement ça marche mais pas avec une base access qui se trouve sur le réseau (lien ODBC pointant vers base en réseau).

Voilà, si tu as une solution je suis preneur.
:cry:

Posté : 04 déc. 2006, 17:52
par neotima
Re,

Je viens de passer l'après-midi, toujours sur mon problème de lien ODBC en réseau.

Je ne comprends pas que ça marche avec Easyphp 1.7 (les lien ODBC access en réseau) mais pas avec une installation APACHE 2.2.2, PHP5 et Mysql5.

Il doit avoir une modif a effectuer dans un fichier de config mais lequel???? :cry:

La seul solution que je vois pour le moment, c'est d'exporter mes bases access en local mais bon je pense que mon chef ne voudra pas.

Si quelqu'un a déjà vu ça!!!!!!!!

Merci d'avance...

Neotima :roll: :roll:

Posté : 05 déc. 2006, 15:30
par neotima
Bonjour :lol: ,

Enfin je viens de trouver la solution à mon problème.

En fait au niveau de ma configuration apache et php, y a pas de problème.

Le problème venait des droits du service APACHE, car il est ouvert avec le compte "Système local".

Ce compte à tout les droits en local mais pas sur le réseau.
Donc il faut changer le mode de connexion.

Je comprends pourquoi Apache dans Easyphp fonctionne car il ne démarre pas comme service, il hérite des droits de la session.

Messagedu document APACHE :

By default, all Apache services are registered to run as the system user (the LocalSystem account). The LocalSystem account has no privileges to your network via any Windows-secured mechanism, including the file system, named pipes, DCOM, or secure RPC. It has, however, wide privileges locally.

Solution du document Apache :

You may want to create a separate account for running Apache service(s). Especially, if you have to access network resources via Apache, this is strongly recommended.

1. Create a normal domain user account, and be sure to memorize its password.

2. Grant the newly-created user a privilege of Log on as a service and Act as part of the operating system. On Windows NT 4.0 these privileges are granted via User Manager for Domains, but on Windows 2000 and XP you probably want to use Group Policy for propagating these settings. You can also manually set these via the Local Security Policy MMC snap-in.

3. Confirm that the created account is a member of the Users group.

4. Grant the account read and execute (RX) rights to all document and script folders (htdocs and cgi-bin for example).

5. Grant the account change (RWXD) rights to the Apache logs directory.

6. Grant the account read and execute (RX) rights to the Apache.exe binary executable.



Voilà si vous voulez plus de précisions me contacter.

Et merci de votre aide.

:lol: