Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2007, 14h49   #1
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
Par défaut Connexion sur une dBase via PHP

Bonjour,

Je pense qu'il y a quelque chose que je n'ai pas compris au sujet des connexions via odbc.

Voilà sur mon PC local avec easyPHP je me connect à une dBASE (un simple fichier .dbf sur mon bureau), bon jusque là rien d'extraordinaire j'ai juste créé la source dans le panneau de configuration > outil d'administration > sources de donnée.

Mais par contre si je veux exporter ça sur le server de prod comment je créé la source de donnée ?
Je n'ai pas de panneau de config etc donc là je suis assez perplexe.

Alors est-ce que ma question semble bête et extrement facile ? Parceque si c'est le cas j'ai rien compris à tout ce que j'ai lu sur le sujet ....
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 10h39   #2
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Bonjour,

La source de donnée en local est un lien ODBC (sur ta machine) vers ton fichier.

Pour faire la même chose sur ton serveur, il te faut
  1. Que ton serveur ait un OS microsoft condition nécéssaire pour la recréation de ton lien ODBC
  2. Déposer ton fichier DBF (ou bien pointer un partage de ta machine)
  3. Enfin recréer ton lien et qu'il pointe vers ton dbf

Voilà j'espère avoir répondu à ton problème.
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h59   #3
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
Bonjour,
Merci beaucoup de ta réponse.

En fait ce qui me pose probleme c'est le 3eme point, est-ce que je peux recréer le lien vers mon fichier .dbf sans passer par le panneau d'administration (auquel je n'ai pas accés), donc en passant par mon code php.
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 12h32   #4
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Re,

Oui je pense que c'est possible.

Pour la connexion sans alias ODBC, tu peux regarder du côté de la FAQ : http://php.developpez.com/faq/?page=odbc#odbc-sans-dsn

Ensuite trouver la bonne chaîne de connection : http://www.connectionstrings.com/?carrier=dbffoxpro

Voilà à toi de jouer
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 12h38   #5
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
D'accord, je pense que je vais m'en sortir avec tout ça

Merci beaucoup (si ça marche je mettrais le code au cas ou quelqun en ait besoin).
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 14h46   #6
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
Bon ben voilà je reviens aux news.
J'ai réussi à faire fonctionner ça sur mon ordi mais quand je passe sur le server de prod ça ne passe plus.

Alors je me suis inspiré de ce que eric190 m'avait donné (ça n'a pas marché du premier coup mais en bataillant un peut ça passe).

Donc voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$chaine_connection = "DRIVER={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;";
 
$conn = odbc_connect($chaine_connection,"","");
if(odbc_commit($conn)) {
	$res = odbc_exec($conn,"select * from \\\\163.94.6.50\\c\\WEB\\CLIENTELE\\TraitementW7\\ARE\\U4\\DataBase\\OLHAGRS.DBF") or die("echec store");
}
else {
echo "echec lecture";
exit;
}
$compteur = 0;
while(odbc_fetch_row($res)) {
	$compteur++;
}
echo $compteur;
?>
Ici la base est sur le server de prod et j'arrive à m'y connecter depuis mon PC personnel (j'ai easyphp dessus).
Par contre quand je passe sur le server de prod ça ne passe plus.

Voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$chaine_connection = "DRIVER={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;";
 
$conn = odbc_connect($chaine_connection,"","");
if(odbc_commit($conn)) {
	$res = odbc_exec($conn,"select * from \\\\163.94.6.50\\c\\WEB\\CLIENTELE\\TraitementW7\\ARE\\U4\\DataBase\\OLHAGRS.DBF") or die("echec store");
}
else {
echo "echec lecture";
exit;
}
$compteur = 0;
while(odbc_fetch_row($res)) {
	$compteur++;
}
echo $compteur;
?>
Je ne comprend pas pourquoi ça me genre une erreur sur le server de prod, il tourne bien sur windows.

Voici l'erreur renvoyée :

Citation:
[Microsoft][Gestionnaire de pilotes ODBC] Longueur de chaîne ou de mémoire tampon non valide, SQL state S1090
Longueur de chaine non valide, est-ce que ça veut dire que le gestionnaire de sources est différent du mien et que la chaine de connexion a plus de parametres ?
Je suis vraiment dans le flou là
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 09h04   #7
Membre actif
 
Avatar de Momodedf
 
Inscription : juillet 2007
Messages : 246
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 246
Points : 176
Points : 176
Bonjour,
Je n'ai toujours pas trouvé d'autre moyen exploiter cette dBase. Personne ne veut se pencher sur mon probleme ?
Momodedf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h42.


 
 
 
 
Partenaires

Hébergement Web