Besoin d'aide pour ODBC access

Petit nouveau ! | 5 Messages

20 janv. 2006, 20:11

Salut a tous,

Je n'ai jamais travaillé sous access via Php,

Jai trouver quelques tutos qui expliquent comment etablir la connection mais je n'y arrive pas.
http://www.phpteam.net/articles/expert/ ... c-avec-php
car

La base se trouve sur le meme serveur mais pas sous le meme domaine.

Cette base est en fonctionnement sur un site en ASP ce qui m'oblige a travailler dessus ...

donc si quelqu'un pouvait m'eclairer ca serait bien sympa ;)

thomas13

Mammouth du PHP | 19672 Messages

20 janv. 2006, 22:40

Si tu as un début de code et les messages d'erreurs obtenus s'il y en a, ça nous donnera une chance de t'aider avec plus de précision :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

21 janv. 2006, 03:19

Je vous donne ce que j'ai

www.site.com // path -> c:\domaines\monsite.com\wwwroot\
www.lesitedelabaseaccess.com //Path : www.lesitedelabaseaccess.com/basededonnees/01.mdb

Code : Tout sélectionner

<?php if (!$conn = new COM('ADODB.Connection')) // Declaration Objet exit('impossible de créer la connection ADODB'); ?>
Comme expliqué dans le tutorial que j'ai cité; La, l'objet est bien créé.

Code : Tout sélectionner

<?php DRIVER={Microsoft Access Driver (*.mdb)}; // choix driver DBQ=database; // ici c:\domaines\lesitedelabaseaccess.com\wwwroot\basededonnees\01.mdb DefaultDir=database; // ici /basededonnees/01.mdb SERVER=localhost; // Vu que les deux sites sont sur le meme serveur je laisse localhost ? UID=admin; // ici mon login FTP PWD =password " ; // et la mon password ?>

la ca coince. sans me donner l'erreur, php.ini bloque les messages d'erreurs.

Vous voyez le probleme?.
Merci Thomas13

Mammouth du PHP | 19672 Messages

21 janv. 2006, 10:04

Pas vraiment, mais essaye de rajouter ça en début de code :
error_reporting(E_ALL);
Ça devrait forcer l'affichage des messages d'erreur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

21 janv. 2006, 13:59

Salut Cyrano

Voila ce que j'obtient avec le

Code : Tout sélectionner

error_reporting(E_ALL);
.

PHP Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for ODBC Drivers Description: Operation was canceled. in c:\domains\monsite.com\wwwroot\s010\connect.php on line 18


Sinon j'ai oublié de copier une ligne dans mon code du dessus :

$connect = "
DRIVER={Microsoft Access Driver (*.mdb)}; // choix driver
DBQ=database; // ici
....


Voila, J'espere y arriver avant la fin du week end :(

Thomas13

Mammouth du PHP | 19672 Messages

21 janv. 2006, 14:11

Fais donc voir quelques lignes avant jusqu'à la ligne 18 mentionnée dans le message ? : d'après ce que tu viens de montrer, je soupçonne une erreur à cause des commentaires :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

21 janv. 2006, 14:33

Autant pour moi, javais laissé un com. Mais maintenant j'ai
PHP Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x2f10 Thread 0x25d0 DBC 0x7b13f4 Jet'. in c:\domains\monsite.com\wwwroot\auct\connect.php on line 18
Voila le morceau de code:
<?
include('head.php');
error_reporting(E_ALL); 
?>
<?php 
if (!$conn = new COM('ADODB.Connection'))  // Declaration Objet 
exit('impossible de créer la connection ADODB'); 
?> 
<?php 
$connect = " 
DRIVER={Microsoft Access Driver (*.mdb)}; // choix driver 
DBQ=c:\domains\lesitedelabase.com\wwwroot\db\01.mdb;
DefaultDir=/db/01.mdb;
SERVER=localhost; 
UID=ftp.lesitedelabase.com;
PWD =password" ;

$conn->open ($connect) ; // ouverture de la base 
?> 
Perso je pense que je n'emploi pas bien cette syntaxe;
$connect = " 
DRIVER={Microsoft Access Driver (*.mdb)}; // choix driver 
DBQ=[b]c:\domains\lesitedelabase.com\wwwroot\db\01.mdb[/b];
DefaultDir=/[b]db/01.mdb[/b];
SERVER=[b]localhost[/b]; 
UID=[b]ftp.lesitedelabase.com[/b];
PWD =[b]password[/b]" ;
genre le path n'est pas celui que je dois utiliser ou le nom du server n'est pas en localhost ...

Merci deja pr les precendantes reponses !
Modifié en dernier par thomaaa le 21 janv. 2006, 18:52, modifié 1 fois.

Mammouth du PHP | 19672 Messages

21 janv. 2006, 14:45

Non, je crois que j'ai compris, c'est un problème de "\" qu'il faut doubler : c'est un caractère d'échappement, il faut donc pour l'utiiser en chaine de caractère l'échapper lui-même, ce qui devrait donner:
$connect = "
DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=c:\\domains\\lesitedelabase.com\\wwwroot\\db\\01.mdb;
DefaultDir=/db/01.mdb;
SERVER=localhost;
UID=ftp.lesitedelabase.com;
PWD =password" ;
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

21 janv. 2006, 18:51

Re,

Quand j'ai lu le message avec les caracteres d'echappements j'y ai fortement cru, et bien non...

Code : Tout sélectionner

PHP Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x37c Thread 0x850 DBC 0x7b1414 Jet'. in c:\domains\monsite.com\wwwroot\auct\connect.php on line 18
J'en deduis qu'une connection est tentée mais elle aboutie pas.

Mammouth du PHP | 19672 Messages

21 janv. 2006, 20:31

Dommage, et j'ai pas l'expérience ODBC pour t'aider beaucoup sur ce coup là :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

22 janv. 2006, 21:35

Merci quand meme pr tes posts.
Je peux poster un lien vers ce topic dans le forum general au cas ou ?

Mammouth du PHP | 19672 Messages

22 janv. 2006, 21:37

ça ne servira à rien et le multipost est interdit. Mais te tracasse pas trop, beaucoup font régulièrement le tour des différents forums.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: