Login mot de passe
 
Menu Principal
Soutenir SQLManagerX
Certains nous ont demandés comment nous aider voici un lien pour nous soutenir


SQLManagerX
Dossiers

(si le PDF ne s'ouvre pas vous pouvez
le telecharger en faisant clic droit
puis "enregistrer sous")
Accès SQLManagerX
Découvrez



SQLManagerX Pro


Produits






Qui est en ligne
6 utilisateur(s) en ligne (dont 2 sur Suite SQLManagerX)

Membre(s): 0
Invité(s): 6

plus...
Partenaires

http://www.TeeCod.fr
TeeCod


http://www.microsystem.fr
Microsystem


http://www.dag-system.fr/?lang=fr#
DAG SYSTEM


http://teixis.com
Teixis


Traduire

Suite SQLManagerX
[Retour | Afficher cette page en format imprimable]

Page soumise par Firetox - [Note : 9.00 (8 votes) | Noter ça !]


PHP4WD


Dernière version

Télécharger la dernière version : Projet exmple 5.0.0.5
                                                    

Les scripts de transfert sont dans le projet a la racine
Compatibilité : SQLManagerX / SQLEdit

Introduction

[5.0.0.5]
mise a jour des scripts pour eviter les messages d'erreur et warning sur les versions php5

[5.0.0.4]
Modification pour SQLite Sqlite_fetch_row est remplace par sqlite_fetch_array. en php5 fetch_row n'existe plus

[5.0.0.3]: mise a jour pour acceder a firebird depuis php4wd. pour l'instant ni les procedures stockées, ni les blob sont actif dans la classe. mais les requetes et SQLManagerX fonctionnent tres bien avec cette version. testée sur apache, php5, FireBird 1.5

[5.0.0.2] : mise a jours des scripts. avec certaines configuration de php il pouvait être renvoyé un warning sur les requetes SQL update, delete et autres requetes ne revoyant pas de résultat. le nouveau script php4wd.php regle ce probleme.

Ce projet permet un accès à aux bases de données SQL sur des sites déportés au travers d'une couche php. Il est composé d'une fenêtre de test, d'une classe et de 3 scripts php.

ATTTENTION les scripts et la classe doivent avoir tous le meme numero de version. Si ce n'est pas le cas contactez nous un lien ne doit pas etre a jour.

POUR LA CONNEXION VOUS DEVEZ SPECIFIER LA BASE :
mySQLConnecte("www.SQLManagerX.com/php4wd.php","","","maBase")

Exemple Appel de procedure sous oracle :

i est un entier
v_res est une chaîne

// procedure avec 1 parametre en entree et 3 en sortie

CONVSQL:mysqlCloseBind()
CONVSQL:MySQLDefBind(1,"TESTPIN",CONVSQL:PS_VARIN,CONVSQL:PS_TYPEINTEGER,20)
CONVSQL:MySQLDefBind(2,"TESTCHA",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPECHAINE)
CONVSQL:MySQLDefBind(3,"TESTINT",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPEINTEGER)
CONVSQL:MySQLDefBind(4,"TESTDAT",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPECHAINE)
CONVSQL:MySQLDefBind(5,"TESTDBL",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPEDOUBLE)

SI CONVSQL:MySQLExec("TESTPS(:TESTPIN,:TESTCHA,:TESTINT,:TESTDAT,:TESTDBL)",1) ALORS
 
 // recuperation des parametres envoyés
 POUR i=2 A 5
  CONVSQL:mySQLGetBind(i,v_res)
  Trace(v_res)
 FIN

 // recuperation du recordSet renvoyé par la procedure si il y en a un
 CONVSQL:mySQLPremier(1)
 TANTQUE PAS CONVSQL:mySQLendehors
  Trace(CONVSQL:MySQLLitLigne(1))
  CONVSQL:mySQLSuivant(1)
 FIN 
FIN
CONVSQL:mysqlferme(1)
CONVSQL:mysqlCloseBind()

 

Exemple d'appel d'une procedue sous SQLServer :
v_reponse est une chaîne
i est un entier

CONVSQL:MySQLCloseBind()

//premier parametre :@IN1
CONVSQL:mySQLDefBind(1,"@sval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPECHAINE,"Franck")

// deuxieme parametre : en entree / sortieentier
CONVSQL:mySQLDefBind(2,"@intval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPEINTEGER,50)

// troisiem eparametre en entee sortie maischaine
CONVSQL:mySQLDefBind(3,"@floatval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPEDOUBLE,2.1416)

v_req est une chaîne

v_req += "TestPSSQLServer"

IF(CONVSQL:MySQLExecPS(v_req,1)) THEN

 // recuperation des parametres envoyés
 CONVSQL:mySQLGetBind(1,v_reponse)
 Trace(v_reponse)
 CONVSQL:mySQLGetBind(2,v_reponse)
 Trace(v_reponse)
 CONVSQL:mySQLGetBind(3,v_reponse)
 Trace(v_reponse)
 
 // recuperation du recordSet renvoyé par la procedure si il y en a un
 CONVSQL:mySQLPremier(1)
 TANTQUE PAS CONVSQL:mySQLendehors
  Trace(CONVSQL:MySQLLitLigne(1))
  CONVSQL:mySQLSuivant(1)
 FIN
ELSE
 Erreur(CONVSQL:mySQLGetErrorMessage())
END
CONVSQL:MySQLCloseBind()
CONVSQL:mySQLFerme(1)

 

Ce projet est maintenu par Frédéric Emprin.

Principe

Le fonctionnement est assez simple. Il reprend le principe de l'accès natif mySQL puisque depuis windev, la classe possède les même méthodes. La classe envoie les requêtes cryptées par une clé publique et privée au script php se trouvant sur le site web permettant l'accès a la base MySQL. Le script exécute la requête et récupère le résultat et le transmet au programme windev par http. La classe du programme windev lit le résultat et le conserve en mémoire (ce que font les dll des accès natif). Ensuite la classe Php4Wd gère ce résultat. la cle public est celle qui sert pour l'élaboration de la cle privée, qui permet le cryptage et le décryptage. les requetes sont envoyé cryptée et le resultat envoyé par le script PHP egalement. Ne transitent sur le reseau que des chaines cryptees permettant ainsi une securite maximum sur les données envoyées et recues. les cles n'etant pas envoyées sur le reseau il est impossible de decrypter les chaines tansitant entre le programme windev et les script php. 

Pré-requis : Il y a une constante dans la classe K_PUBLIC_KEY que vous pouvez modifier : attention il y a la même public key dans les 2 scripts.

Méthode pour intégrer PHP4WD à votre projet :

  1. Ouvrir le fichier connect.php et changez les infos de connexions
  2. Mettre les 2 fichiers sur votre site internet (penser à éditer le php4wd.php si vous changer le chemin du fichier connect - dans un répertoire privé par exemple
  3. Intégrer la classe php4WD dans votre projet, elle se présente comme un acces natif et a les mêmes méthodes
    Info : la méthode connect attend une adresse URL ex: convSQL:mySQLConnecte(" http://www.monsite.com/php4wd.php ") c'est l'adresse du script php

Compléments

PHP4WD permet de travailler avec toutes bases se trouvant sur un serveur HTTP et pour laquelle il existe un connecteur PHP disponible et installé.

 

L’utilité de PHP4WD n’est plus à démontrer dans le cadre d’accès aux bases de données sur les sites Internet pour lesquels les bases sont accessibles uniquement à partir du site WEB.

La puissance de PHP4WD est décuplée dans le cadre d’utilisation d’application sur une architecture type WEB.

 

Couche Client

Couche Transport http

Serveur WEB/BASE

 

Les avantages de PHP4WD sont multiples :

·         Accès à la base géré au niveau du serveur HTTP/PHP (connexion, déconnexion en fonction de l’activité…).

·         Sécurisation des données par l’utilisation du protocole HTTPS.

·         Fonctionnement des applications en mode Wifi/Bluetooth.

·         Fonctionnement des applications sur le réseau Internet ou Intranet.

·         Accès indépendant de la base.

·         WinDevMobile peut profiter du même accès que WinDev pour accéder à toutes les bases sur le serveur.

 

 

Utiliser PHP4WD

c’est faire du client riche sur une architecture WEB

Tout en conservant ses habitudes de programmation sur WinDev.



[Retour | Afficher cette page en format imprimable]

Page soumise par Firetox - [Note : 9.00 (8 votes) | Noter ça !]
Copyright: © 2004 By SQLManagerX
WinDev©, WebDev© et HyperFile© sont des marques déposées par PCSoft.
By Firetox
IMAGO:THEMES Theme Design by IMAGO DESIGN CORP.