{HyperFile} Lire une base Hyper File en PhP

Fermé
BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 - 19 sept. 2009 à 10:40
issa_galsen Messages postés 1 Date d'inscription mardi 14 mars 2017 Statut Membre Dernière intervention 14 mars 2017 - 14 mars 2017 à 10:53
Bonjour,
D'un coté, j'ai une base HyperFile (Windev) liée à un soft réalisé sous Windev14.
D'un autre coté, j'ai un intranet développé en Php qui récupère les informations provenant de l'appli locale Windev.

A ce jour, le soft Windev envoie les données dans la base MySql via une passerelle "maison" que je n'ai pas réalisée moi-même, et pour cause, je n'en ai pas les sources. Enfin cette base MySql alimente l'intranet.

Je souhaiterai simplement savoir si il est possible d'attaquer (lecture et écriture) directement la base HyperFile via Php, afin d'unifier les 2 bases en une seule, et ainsi éviter toutes les erreurs liées a la redondance de données (car évidemment il y en a).

Je précise qu'il n'est pas possible de faire l'inverse, a savoir attaquer la base MySql via Windev, vu que l'application est verrouillée et que nous n'en avons plus les sources.

Merci d'avance pour vos réponses

34 réponses

BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 5
28 févr. 2010 à 21:08
php...
0
bonjour...topic super interessant que j'ai lu avec attention car de suis dans une situation similaire.

J'ai une question tres simple....apres avoir parcouru differents forum...il me semblait que le driver odbc pour windev etait en lecture seul.....mais apres avoir lu ce topic...il a ete dit en lecture et ecriture.
Pouvez vous comfimer et m'eclairé? est ce que driver odbc sur le site et le driver odbc sur le cd sont differents??

Merci d'avance
JP
0
BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 5
18 avril 2010 à 11:03
Bonjour,
Alors pour commencer, je te confirme que l'on peut bien écrire avec le driver odbc hyperfile, ça marche et c'est d'ailleurs en production depuis l'ouverture du topic.

Par contre peux tu préciser ta question concernant le driver odbc du site et du cd... de quel site parle tu ?

En ce qui me concerne, et si j'interprete ta question, je n'utilise qu'un seul driver odbc, c'est celui qui est livré avec le cd de wd14.

N'hésite pas si tu as des questions et précise ou tu coinces,
Bon dev
0
Merci BrousseOuilisse pour ta repose rapide, merci

Oui pardon...j'ai pas été très précis...je parlais du site PCSOFT ou l'on trouve le driver odbc pour windev14 - https://www.pcsoft.fr/st/telec/index.html en opposition avec celui du CD

J'ai personnellement 2 serveurs séparés, un avec windev et un avec mon serveur web. C'est du coté du serveur web que je dois installer ce driver il me semble, juste?
JP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 5
19 avril 2010 à 07:53
C'est précisément mon cas (enfin celui de mon client)
C'est du coté web effectivement : http://www.wdforge.org/modules/icontent/index.php?page=63
Attention sur mon ordi qui est sous vista 64bits ça ne fonctionnait pas lors de mes tests, ce qui m'a valu pas mal de temps perdu.
Sur un serveur windows 2003 et 2008 ça passe. ensuite les instructions sql feront elles memes la traduction via le driver odbc pour attaquer ta base hf :

$dsn="dsn_odbc";
$login="admin";
$pass="mot_de_passe";

$_SESSION['connexion'] = odbc_connect($dsn, $login, $pass) or die("echec connexion");

$sql_update = "UPDATE ton_fichier_hf SET code='$code' WHERE .....";
$exe_update = odbc_exec($_SESSION['connexion'],$sql_update);


Et c'est parti...
0
BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 5
15 oct. 2010 à 13:56
Bonjour,

Alors plutot qu'un long discours, voici un lien qui devrait simplement répondre à ta question :
https://www.commentcamarche.net/contents/697-creation-d-un-dsn-avec-odbc

Bon courage,
0
Bonjour, je suis dans le même contexte que vous. J'ai une application Windev - dont je n'ai pas les sources - qui tourne sur une machine en locale.
J'ai également un site sous Magento qui doit collecter les données de l'application windev. Pour ce faire, je suis en train de développer un script en PHP CLI qui fouille dans la base hyperfile et me remontrera les info par un HTTPRequest.

Mon problème aujourdhui, c'est que les données créées chaque jour - typiquement les commandes passées - sont enregistrées dans de nouveaux fichiers FIC ayant pour nom la date du jour...

Ces fichiers ne sont donc pas inclus dans l'analyse .wdd. Comment accéder à ses fichiers externes par PHP CLI ?

D'avance merci.
0
BrousseOuilisse
22 déc. 2010 à 17:03
Bonjour,

Si tes fichiers ont un nom différents chaque jour, je suppose qu'ils sont des alias (Windev), et dans ce cas c'est plus compliqué.
Depuis ton appli web, c'est l'analyse windev (via l'odbc) qui va te rediriger automatiquement vers les fichiers fic originaux (avec un nom unique) correspondants décrits dans l'analyse. Les alias, sont uniquement gérables depuis Windev pour Windev. Pour une appli extérieure je crains que ce ne soit plus compliqué (voire pas possible).

La 1° solution qui me vient est une migration de tes fichiers fic vers un format csv ou txt.
Peut être en développant une mini interface sous Windev pour créer ces fichiers d'export ? Il te suffirait alors de reproduire le format de tes fichiers journaliers dans l'analyse de ton interface (WdMap peut t'aider pour ça) , puis tu les exportes la nuit via un timer par exemple.

Si j'ai mal compris ton problème ou si je ne suis pas clair n'hésite pas...
0
Bonjour et merci de ta réponse.

En fait j'ai rencontrés plusieurs problèmes avec PHP : je pouvais créé un fichier .FIC mais il n'était pas créé dans l'analyse, et donc je ne pouvais pas exploiter ses données parce qu'il n'existait pas selon le .WDD.... logique...
Je me suis donc résignée à débuter un projet sous Windev pour tester. Et j'ai dans l'idée de refaire une analyse .wdd depuis mes fichiers constants (ceux qui ne change jamais de nom), et d'inclure les fichiers créés selon la date du jour dynamiquement grâce à HDéclareExterne().
Qu'en penses-tu ? Ca peux le faire ?

Tu me parles d'alias, ok, j'ai bien saisi que ça pouvait poser probleme, mais est-ce je ne peux pas moi-même créer de nouveaux alias pour mon projet ? Je ne comprends pas bien où intervient l'alias et où ça pourrait bloquer (je suis débutante WinDev). Peux-tu m'éclairer ?

Concernant l'export au format CSV ou autre, j'y avais pensé également mais ce n'est pas possible, dans le sens ou je dois pouvoir être capable d'injecter des données dans ces fichiers.

D'avance merci.
0
newkiss Messages postés 127 Date d'inscription mardi 7 septembre 2010 Statut Membre Dernière intervention 12 janvier 2015 13
10 janv. 2011 à 14:47
Je vous conseil de regarder du côté de WDScript --> http://www.wdscript.com/present-fr.wdsc
0
Panshu Messages postés 31 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 26 mai 2014
Modifié par Panshu le 27/04/2011 à 11:58
Bonjour,

Sujet très intéressant, je suis dans un cas similaire.
Je souhaite développer un premier serveur un site extranet qui héberge déjà un site web. Sur un deuxième serveur, il y a une base Hyper File SQL exploité par un logiciel tier développé par une petite société.
(d'ailleurs, mon pilote HF pointe sur le .wdd du logiciel, et non d'HF. Cela pose-t-il un problème ? Le problème c'est que je possède pas de .wdd dans mon répertoire Serveur HF..).

J'ai installé manuellement le pilote HF dans l'ODBC et j'ai vérifié qu'il fonctionne en exportant quelques données sous excel.

Mais lorsque j'exécute le code Php suivant :
<?php

$server="dom";
$database="data";
$username="admin";
$password="";

$cnx = odbc_connect("Driver={Hyper File 7};Server=$server, Database=$database;", $username, $password);

If($cnx)
{
echo "Connexion ODBC réussie";
}
else
{
echo "Problème de connexion ODBC";
}
?>

J'ai ce problème :
Warning: odbc_connect(): SQL error: Le pilote spécifié n'a pas été chargé en raison de l'erreur système 5 (Hyper File 7)., SQL state IM003 in SQLConnect in E:\www\SITE\T27dChromevieux\z_test_cxn.php on line 8 Problème de connexion ODBC

De même, pour ce code :
<?php

$host="dom";
$username="admin";
$password="";

$lnk = odbc_connect($host, $username, $password);
If(!$lnk)
{
echo "Problème de connexion ODBC";
}
?>

Warning: 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 E:\www\SITE\T27dChromevieux\z_test_cxn.php on line 23 Problème de connexion ODBC

Merci d'avance.
0
tmtben Messages postés 1 Date d'inscription lundi 29 août 2016 Statut Membre Dernière intervention 29 août 2016
29 août 2016 à 09:48
Bonjour tout le monde,

Je déterre le sujet.

J'ai réussi à me connecter à la base de données HFSQL en php, sous linux.

Mais je ne parviens pas à manipuler les colonnes de type "mémo".

Merci d'avance pour vos retours d'expérience.

Ben
0
issa_galsen Messages postés 1 Date d'inscription mardi 14 mars 2017 Statut Membre Dernière intervention 14 mars 2017
14 mars 2017 à 10:53
Voici une syntaxe qui marche :
$dsn="DRIVER={HFSQL};DSN=nom_source_donnees_utilisateur;ANA=E:\\Mes Projets\\TEST\\TEST.wdd;Server Name=127.0.0.1;Server Port=4900;Database=TEST";
$connexion = odbc_connect($dsn,"nom_utilisateur_hyperfile", "mot_de_passe_utilisateur_hyperfile") or die( odbc_errormsg() );
$sql = "SELECT * FROM test";
$res = odbc_exec ($connexion,$sql) or die( odbc_errormsg() );
odbc_result_all($res);

Il faudra :
-installer le pilote odbc fourni par windev qui se trouve dans Windev\Install\ODBC
-ajouter l'extension php_pdo_odbc sur php.ini
-créer une source de données utilisateurs
0
BrousseOuilisse Messages postés 27 Date d'inscription vendredi 18 septembre 2009 Statut Membre Dernière intervention 15 octobre 2010 5
20 sept. 2009 à 08:23
Et bien, personne pour m'aider?
-1
newkiss Messages postés 127 Date d'inscription mardi 7 septembre 2010 Statut Membre Dernière intervention 12 janvier 2015 13
10 janv. 2011 à 14:46
Je vous conseil de regarder du coté de WDScript --> http://www.wdscript.com/present-fr.wdsc
-2