1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Comment Connecter une application Android avec une base de donnée Distante sous WM

Discussion dans 'Windev Mobile' créé par helouardi, Mai 16, 2018.

  1. helouardi

    helouardi New Member

    Inscrit:
    Mar 22, 2018
    Messages:
    1
    J'aime reçus:
    6
    Bonjour les windeveurs,

    Je vais vous présenter comment lier une application windev mobile avec une base donnée distante (Mysql par exemple) en se basant sur les classes de PHP4WM (php for windev mobile) :°.

    Prérequis:

    Wamp server .

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    windev mobile 17.
    les classes PHP4WM.

    Préparation de l'espace:

    A partir de ce lien vous pouvez télécharger PHP4WM:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Extraire le fichier récemment telechargé dans la repertoire www de wampServer
    Ouvrir le fichier connect.php sur l'editeur text (notepad++) et modifier les ligne de connexion comme indique l'image suivante:
    [​IMG]
    pour la base de donnée vous pouvez faire votre propre BD.
    même indication pour le $PublicKey si non laissez le comme il est.

    Maintenant ouvrez votre IDE windev mobile :
    créez un nouveau projet android sans base de données .
    dans la répertoire que vous avez télécharger précédemment vous trouvez un fichier qui s'appelle c_Php4WM.wdc, en fait c'est une classe windev mobile.
    Glissez ce fichier vers la partie réservé au classe de votre projet comme suit:

    [​IMG]

    La préparation de l'espace est Terminé.

    Établir la connexion avec Mysql:
    créer une fenêtre (activité) et placez dedans 2 boutons et un Champ texte ( textView )

    [​IMG]


    le nom de la button verte: BTN_conn
    le nom de la button rouge: BTN_deconn
    le nom de la lebellé : LIB_afficheur

    dans le code de la button déconnexion ajouter cette ligne:

    Code (Windev):

    IF (estConnecte = True) THEN

    estConnecte = False
    monAccess:mySQLDeconnecte()
    LIB_afficheur="Connection non etablie"
    END
     




    dans la partie de la déclaration des variable de projet nous avons besoin d'instancier notre classe php4WM pour cela ajouter les ligne suivants dans la partie initialisation:



    Code (Windev):

    GLOBAL
    monAccess is c_Php4WM()
    i est un entier=1
    estConnecte est un booléen=False
     
    dans le code de la bouton connexion ajouter ces lignes:


    Code (Windev):

    LOCAL
    v_retCode is boolean
    monAccess:TypeBase = "MYSQL"
    monAccess:CleCryptage = "AABBCCDDEEFFGGHH" // la même clé que connect.php pour le déchiffrement
    serv,user,pass,base est une chaîne
    /// les mêmes informations que nous avons déjà fourni
    serv = "http://10.0.2.2/php4wd.php";
    user = "root";
    pass = "";
    base = "_1_maBase_1";
    v_retCode = monAccess:mySQLConnecte(serv,user,pass,base)
    IF (v_retCode = True) THEN
    LIB_afficheur="Connection établie"
    estConnecte=Vrai
    ELSE

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Impossible de se connecter à la base de donnée .", "Erreur n° " + monAccess:mySQLErreur, monAccess:mySQLGetErrorMessage())
    END
     

    vous pouvez démarrer vos programme et tester vote connection ;) .

    [​IMG]

    [​IMG]

    Au revoir et à la prochaine partie INCHA ALLAH. on va voir comment réaliser les requête avec cette base de données Mysql (Select, Delete, Modifier, Ajouter) CRUD pour la base de données MYSQL.

    s'il y a des problèmes ou des propositions n'hésitez pas de me laisser des commentaires pour rendre ce document plus bénéfiques.
     
    Tags:
  2. Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    190
    J'aime reçus:
    372
    Le lien PHP4VM contient un cheval de troie

    Prudence est Mère de Sureté ;-)
     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    1,390
    J'aime reçus:
    804

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Le lien PHP4VM contient un cheval de troie

    Prudence est Mère de Sureté ;-)
    Cliquez pour agrandir...
    le site officielle c'est sûrement plus sur :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    WX1331, suenodesign et Gemini1961 aiment ça.
  • ANDRE3000

    ANDRE3000 Member

    Inscrit:
    Juin 5, 2018
    Messages:
    40
    J'aime reçus:
    1
    Finalement est-ce qu'il y aura la suite comme promis?
     
    Man apprécie ceci.
  • Roomytuto

    Roomytuto New Member

    Inscrit:
    Oct 13, 2018
    Messages:
    2
    J'aime reçus:
    0
    Bonjour! Ce tutoriel concerne windev mobile 17, mais pas la version récente puisque cela ne marche pas avec windev mobile 22. Quel est là solution pour moi?
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    1,390
    J'aime reçus:
    804
    Bizarre, en 23 c'est bon
     
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    156
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour! Ce tutoriel concerne windev mobile 17, mais pas la version récente puisque cela ne marche pas avec windev mobile 22. Quel est là solution pour moi?
    Cliquez pour agrandir...
    Bonjour , les Prérequis demandés (windev mobile 17 ) dans ce TUTO ne veux dire pas que sur les versions récentes c'est pas applicable

    Question: t'a essayer ou moins de suivre les étapes sur WM22 ?
     
    joker apprécie ceci.
  • marchefeu

    marchefeu New Member

    Inscrit:
    Oct 23, 2018
    Messages:
    4
    J'aime reçus:
    2

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour! Ce tutoriel concerne windev mobile 17, mais pas la version récente puisque cela ne marche pas avec windev mobile 22. Quel est là solution pour moi?
    Cliquez pour agrandir...
    Bonjour,
    Pour les applis android faite avec wm22-23 , j'utilise le webservice reservé de PCSOFT, ca marche pas trop mal avec mysql et vite déployé... :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    suenodesign et joker aiment ça.
  • Roomytuto

    Roomytuto New Member

    Inscrit:
    Oct 13, 2018
    Messages:
    2
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour , les Prérequis demandés (windev mobile 17 ) dans ce TUTO ne veux dire pas que sur les versions récentes c'est pas applicable

    Question: t'a essayer ou moins de suivre les étapes sur WM22 ?
    Cliquez pour agrandir...
    Bonjour! Oui j'ai essayé de suivre les étapes avec windev mobile 22 avec la basse de MySQL de mon site web, ça ne tiens pas. Le problème est que lorsque je clique sur le bouton CONNECT, l'application bug et plante.
     
  • MayBst

    MayBst Member

    Inscrit:
    Jan 10, 2019
    Messages:
    55
    J'aime reçus:
    13

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,
    Pour les applis android faite avec wm22-23 , j'utilise le webservice reservé de PCSOFT, ca marche pas trop mal avec mysql et vite déployé... :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    A mon avis, ça a été la réponse de PCSoft à PHP4WX.
     
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    bonjour, la version 9.2.0.6 regle pas mal de probleme
    j'ai des jeux (j'en ai mis un en exemple)
    il n'y a aucun cheval de troie dans le zip (il y a dedans 3 fichiers : connect.php, phpWD.php et la classe windev)
    je travail en windev 24 et j'ai le projet exemple en windev 19 mobile (et tous mes projets passe la compile juste en ouvrant le projet et recompilant
    mais effectivement en 2005 pcsoft etait un des user de php4WM a l'epoque car il voulaient savoir comment je faisait
    donc si besoin (le forum :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    pour ceux qui veulent bien sur (j'ai creer cet acces en 2004 pour mes propre besoin : je l'ai mis en open source, moi je l'utilise tous les jours)
     
    suenodesign apprécie ceci.
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    bonjour, a tous
    pour vous expliquer un peu l'historique :

    en 2002 j'ai commencé a developper php4WD pour windev pour avoir acces ades bases sur des serveurs qui n'autorisent pas la connexion depuis l'exterieur
    je me suis posé la question : quel mecanisme qui doit etre standard pour evoluer avec le temps sans modification
    j'ai choisi php donc internet et le port 80 (et 443 du coup car SSL devenait du coup possible sans modification (d'ou le choix de HTTP))
    en fonction de cela je me passait aussi du fait de faire un webService (car j'utilise php et donc forcement le webservice devenant natif avec les version de php)
    du coup plus besoin de creer un exe particulier pour le depose en webservice (et la du coup j'etait le premier et pcsoft mis a part me copier devait prendre un autre chemin : ce qu'il ont fait en proposant les webservice mais cela impose un exe windev sur le serveur : ce que moi j'avais decidé de ne pas faire)
    a leur service il m'ont aidé aussi sur le seprateur (au debut c'etait tab ou RC mais dans les valeur on pouvait avoir ela et c'est pcsoft qui avait remonté le message sur le forum sqlmaagerX du coup depuis 15 amintenant le seprateur est PHP4WDSEP = la on a moins de risuqe de le rencotrer dans des valeur (et le testeur pcsfot avait confirmé)
    bref depuis je suis sur le standard en tant que webservice qui est en fait un script php
    voila je vais pas refaire les 20 ans de php4Wd et php4WM qui sont devenu php4WX (car a partir de windev 19 : le script n'a pas bcp evolue suaf pour des cas particuliers

    bon dev a tous
     
  • Tronc

    Tronc New Member

    Inscrit:
    Fev 18, 2018
    Messages:
    4
    J'aime reçus:
    0
    Bonjour.
    J'ai une table mysql avec un champ LONGBLOB qui contient une image. Je ne peux pas le voir sur windev mobile avec php4WM.
    Merci.
     
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    Bonjour,
    oui cela provient des character set et autre, donc j'ai pris pour habitude de convertir ce que contient la base en hex au moment du select et depuis windev faire l'inverse : ce qui marche tres bien
    voici un code que j'utilise pour mes test et que j'ai verifié avec la version 9.2.0.8
    dans ma table la colonne longBlob est imgClient et dans la zone repete j'ai une image imgClient
    Code (Text):

    vrequete est une chaîne = "select nom,prenom,dateNaissance,adresse, hex(imgClient) as imgClient  from contacts"
    vindice est un entier

    ZoneRépétéeSupprimeTout(ZR_contacts)
    SI MonAcces:mySQLExec(vrequete,1) ALORS
       TANTQUE MonAcces:mySQLFetch(1)
           // sur chaque ligne action a faire
           vindice = ZoneRépétéeAjouteLigne(ZR_contacts)
           SI vindice>0 ALORS
               ZR_contacts[vindice].LBL_NOM           = MonAcces:mySQLLitColParNom(1,"nom")
               ZR_contacts[vindice].LBL_PRENOM           = MonAcces:mySQLLitColParNom(1,"prenom" )
               ZR_contacts[vindice].LBL_DATENAISSANCE   = MonAcces:mySQLLitColParNom(1,"dateNaissance" )
               ZR_contacts[vindice].LBL_ADRESSE       = MonAcces:mySQLLitColParNom(1,"adresse" )
              ZR_contacts[vindice].imgClient            = HexaVersBuffer(MonAcces:mySQLLitColParNom(1,"imgClient" ))
           FIN
       FIN
    SINON
       Erreur(MonAcces:mySQLGetErrorMessage())  
    FIN[/COLOR]
     
    voila donc simplement dans le code windev pour eviter les inicode et autre qui pourrait modifier le code binaire du blob
     
    Man, PhantomX, Tronc et 1 autre personne aiment ça.
  • Tronc

    Tronc New Member

    Inscrit:
    Fev 18, 2018
    Messages:
    4
    J'aime reçus:
    0
    Merci pour votre aide FIRETOX.
    Le code fonctionne parfaitement avec PHP4WM 8.6.0.0 et windev mobile 22.0.131.0
     
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    pour info la derniere version 9.2.0.8 a ete testée sur windev 19 a 24 sur windev mobile de 19 a 24
    le projet exemple fonctionne et aussi avec des langues qui on des sigles (arabe, indy, chinois, etc ... ) a partir du moment ou la base est en UTF8

    mais n'hesitez pas a poster vos questions sur le forum de php4WX (forum.sqlmanagerX.com)
    car je ne suis pas forcement inscrit partout et le forum SQLManagerX me previent par mail de tout nouveau post

    bon dev @tous
     
    #16 FIRETOX, Mai 11, 2019
    Dernière édition: Mai 11, 2019
    Gemini1961 apprécie ceci.
  • Tronc

    Tronc New Member

    Inscrit:
    Fev 18, 2018
    Messages:
    4
    J'aime reçus:
    0
    FIRETOX, merci encore pour l'information.
     
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    bonjour,
    et pour ceux qui cherchent comment inserer un blob dans mySQL avec php4Wx ou meme comprendre pourquoi phpMyaDMin envoi une chaine bizarre lors de la modif d'un blo ou l'insertion (quand on regarde la requete qu'il envoie a mySQL)

    donc le code pour inserer une image ou un autre blob est :
    ici exemple sur un update
    Code (Text):

    vrequete est une chaîne = "UPDATE contacts SET "
    vrequete += "imgClient     ="        +"0x"+Remplace(Remplace(BufferVersHexa(fChargeTexte("G:EMIDEVCommerciallogoyeux.png")),RC,"")," ","")
    SI PAS  MonAcces:mySQLExec(vrequete,1) ALORS Erreur(MonAcces:mySQLGetErrorMessage())
     
    en fait "0x"+la transformation hexa du fchargeTexte "0x" pour sepcifier que les datas qui arrivent sont en hexa + la chaine hexa (sans les espace et RC que windev ajoute ou laisse mais qui ne sont pas hexa)

    et l'image sera compris par mySQL et donc accessible par d'autres applications comme phpmyAdmin si vous cliquez sur le blob il ouvrira l'image

    voila
    la gestion des blobs et langue n'est pas simple et la je ne parle que de mySQL sur oracle, sqlServer etc ... il faut encore faire autre chose (mais c'est un metier) a l'epoque il m'avait suffit d'essayer de comprendre ce que phpmyADmin envoyait en recuperant la requete et apres des recherche sur google, mySQL, php etc .... j'(avais compris comment cela fonctionne
    bref pour tout developpeur l'important n'est pas d'avoir le code qui le fait mais comment cela se passe (deja on apprend et ensuite on comprend comment le code qu'on ecrit fonctionne : c'est la tout l'art du dev : comprendre comment fonctionne ce qu'on ecrit (comment windev fait alors que j'ai ecrit hlitpremier(monfichier,macle) que fait il derriere : cela permet de savoir ou un bug se situe et surtout comment reagir face a des probleme (mais la je crois que je parle das le vide)

    bon dev a tous
     
  • FIRETOX

    FIRETOX Member

    Inscrit:
    Avr 18, 2019
    Messages:
    27
    J'aime reçus:
    32
    Bonjour, a tous

    la version 9.2.0.12 est en ligne

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    elle regle un petit souci pour les windev Mobiles
    et les recherches en arabe dans la requete du style : select nom,prenom,dateNaissance,adresse,hex(imgClient) as imgClient from contacts where adresse like '%دافئ في المنزل%'
    il y a une discussion sur le forum :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    la version est 19 minimum (et compatible windev windev mobile, webdev de 19 a 24)
    vous avez aussi une maj et des videos de SQLManagerX

    le seule site officiel est SQLManagerX.com
    et si dans vos fichiers .php vous n'avez pas l'entete c'est que certain vous font croire que cela est leur travail
    les entetes de tous les fichiers (.php et classe windev ) sont de ce style :

    /****************************************************************************************************************************/
    /* PHP4WX 9.2.0.12 du 24/06/2019
    /* Createur : EMPRIN Frederic @ 2003
    /* email :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    /*

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    /

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    /****************************************************************************************************************************/


    les autres version php4wm ne sont plus d'actualités car elle presentent pas mal de problemes qui on ete reglés par
    la php4WX (qui le meme code pour les 3 : windev, mobile, webdev) et donc la classe est a intégrer dans le code facilement
    en 19 vous aurez 3 erreur mais les tables n'esitant pas en mobile 19 = c'est normale (soit vous mettez la methode en commentaire, soit vous la supprimée)
    mais a partir de 20 il n'y a plus de messages

    voila
    les zip sont garantis sans virus (de toute façon il n'y a que 3 fichiers) les zip projet exemple par exemple est un zip
    du projet de developpement
     
    Gemini1961, Man et suenodesign aiment ça.
  • ANDRE3000

    ANDRE3000 Member

    Inscrit:
    Juin 5, 2018
    Messages:
    40
    J'aime reçus:
    1

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    bonjour,
    et pour ceux qui cherchent comment inserer un blob dans mySQL avec php4Wx ou meme comprendre pourquoi phpMyaDMin envoi une chaine bizarre lors de la modif d'un blo ou l'insertion (quand on regarde la requete qu'il envoie a mySQL)

    donc le code pour inserer une image ou un autre blob est :
    ici exemple sur un update
    Code (Text):

    vrequete est une chaîne = "UPDATE contacts SET "
    vrequete += "imgClient     ="        +"0x"+Remplace(Remplace(BufferVersHexa(fChargeTexte("G:EMIDEVCommerciallogoyeux.png")),RC,"")," ","")
    SI PAS  MonAcces:mySQLExec(vrequete,1) ALORS Erreur(MonAcces:mySQLGetErrorMessage())
     
    en fait "0x"+la transformation hexa du fchargeTexte "0x" pour sepcifier que les datas qui arrivent sont en hexa + la chaine hexa (sans les espace et RC que windev ajoute ou laisse mais qui ne sont pas hexa)

    et l'image sera compris par mySQL et donc accessible par d'autres applications comme phpmyAdmin si vous cliquez sur le blob il ouvrira l'image

    voila
    la gestion des blobs et langue n'est pas simple et la je ne parle que de mySQL sur oracle, sqlServer etc ... il faut encore faire autre chose (mais c'est un metier) a l'epoque il m'avait suffit d'essayer de comprendre ce que phpmyADmin envoyait en recuperant la requete et apres des recherche sur google, mySQL, php etc .... j'(avais compris comment cela fonctionne
    bref pour tout developpeur l'important n'est pas d'avoir le code qui le fait mais comment cela se passe (deja on apprend et ensuite on comprend comment le code qu'on ecrit fonctionne : c'est la tout l'art du dev : comprendre comment fonctionne ce qu'on ecrit (comment windev fait alors que j'ai ecrit hlitpremier(monfichier,macle) que fait il derriere : cela permet de savoir ou un bug se situe et surtout comment reagir face a des probleme (mais la je crois que je parle das le vide)

    bon dev a tous
    Cliquez pour agrandir...
    A quel endroit doit on inséré ce code?
     
  • Partager cette page

    Chargement...