Login mot de passe
PHP4WD + SQLITMEMO [forum - Accès natifs]

Parcourir ce sujet :   1 Utilisateur(s) anonymes





PHP4WD + SQLITMEMO
Nouveau
Inscrit:
2017/4/29 15:27
Messages: 4
Hors Ligne
bonjour,

j'ai un problème d'affichage des images dans une zonerépétéé sous android.
merci pour votre aide.
cdlt Fabrice FPLP,


voici le code :

PROCEDURE loadItem(like est une chaîne="")
ZoneRépétéeSupprimeTout(ZR_article)
y est un entier
req est une chaîne
retcode est un booléen

req += "SELECT "
req += "article.ART_photo,"
req += "article.ART_designation,"
req += "article.ART_sousDesignation,"
req += "article.ART_prix,"
req += "article.ART_prixKg,"
req += "article.ART_gamme,"
req += "enseigne.ENS_nom,"
req += "article.ART_ID"
req += " FROM article JOIN enseigne ON article.ENS_ID = enseigne.ENS_ID"
req += " WHERE article.ART_designation LIKE '%"+like+"%' ORDER BY article.ART_designation LIMIT 50"

retcode = Php4WM:mySQLExec(req,1)

SI retcode = Faux ALORS
Info(Php4WM:mySQLGetErrorMessage())
VersPressePapier(req)
SINON
Php4WM:mySQLPremier(1)

TANTQUE PAS Php4WM:mySQLEnDehors
y++
ZoneRépétéeAjouteLigne(ZR_article)

ZR_article[y].LBL_designation = Php4WM:mySQLLitCol(1,2)
ZR_article[y].LBL_sousDesignation = Php4WM:mySQLLitCol(1,3)
ZR_article[y].LBL_prix = Php4WM:mySQLLitCol(1,4)
ZR_article[y].LBL_prixKg = Php4WM:mySQLLitCol(1,5)
//IMG = champ image dans la base blob
IMG = Php4WM:mySQLLitMemo(1,1,"IMG")
fSauveTexte(ComplèteRep(fRepEnCours())+"img_"+y,IMG)
ZR_article[y].IMG_photo = ComplèteRep(fRepEnCours())+"img_"+y


Php4WM:mySQLSuivant(1)
FIN

FIN

Php4WM:mySQLFerme(1)

Posté le : 2017/6/4 16:29
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2154
Hors Ligne
bonjour,

normalement la methode SQLLitMemo fait tout
a savoir :

Php4WM
:mySQLLitMemo(1,1,"ZR_article["+y+"].IMG_photo")


faire un point d'arret dans la methode pour voir le fichier temp qui est creer avant affectation a l'image et effacement de l'image

Posté le : 2017/6/4 16:43
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
Nouveau
Inscrit:
2017/4/29 15:27
Messages: 4
Hors Ligne
bonjour Firetox,

le type n'est pas reconnu comme une image
SELON (fieldName..Type)
cas 30001 ???

Php4WM:mySQLLitMemo(1,3,"img_memo")

j'ai même essayé de l'afficher dans une image hors de la zonerépétée et j'ai le même problème dans le champ image.(pas d'affichage)



filename = "C:\Mes Projets WM\COURSE\course\Exe\20170609_08035225.BIN"
myString = "ÿØÿá<0>æExif<0><0>II*<0><8><0><0><0><5><0><18><1><3><0><1><0><0><0><1><0><0><0>1<1><2><0><28><0><0><0>J<0><0><0>2<1><2><0><20><0><0><0>f<0><0><0><19><2><3><0><1><0><0><0><1><0><0><0>i‡<EOT><0><1><0><0><0>z<0><0><0><0><0><0><0>ACD Systems Digital Imaging<0>2004"

Posté le : 2017/6/9 8:34
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2154
Hors Ligne
bonjour,

le type 30001 est le type Image cliquable
connu sur la constante windev: typClicage

je pense que le charset n'est peut etre pas bon dans le retour de php4wd et surtout il ne faut pas crypter le retour il faudrait arrivé a avoir dans le retour de php les données correcte pour en copiant colant dans un fichier avoir l'image

essaye avec cette methode a la place :

PROCEDURE mySQLLitMemo
(requestNumbernumFieldfieldName)
LOCAL
    
    fileName             est une chaîne
myRequestNumber     est un entier
myNumField             est un entier 
myString             est un Buffer

myNumField 
numField 1
myRequestNumber 
requestNumber+1
fileName 
fRepExe()+"temp"+DateSys()+"_"+HeureSys()+".BIN"

WHEN EXCEPTION IN
    
IF (NoSpace(fileName) <> ""THEN
        SELON myRequestNumber
            CAS 1 
fSauveTexte(fileName,:Resultat1[(:indiceEncour[myRequestNumber]*:colonne[myRequestNumber]) + numField])
            
CAS 2 fSauveTexte(fileName,:Resultat2[(:indiceEncour[myRequestNumber]*:colonne[myRequestNumber]) + numField])
            
CAS 3 fSauveTexte(fileName,:Resultat3[(:indiceEncour[myRequestNumber]*:colonne[myRequestNumber]) + numField])
            
CAS 4 fSauveTexte(fileName,:Resultat4[(:indiceEncour[myRequestNumber]*:colonne[myRequestNumber]) + numField])
            
CAS 5 :    fSauveTexte(fileName,:Resultat5[(:indiceEncour[myRequestNumber]*:colonne[myRequestNumber]) + numField])    
        
FIN
        
SWITCH (fieldName..Type)
            CASE  
typBoutontypOnglettypOptionMenutypJaugetypPotentiomètre
                fieldName
..Image fileName
            
CASE typImage ,typClicage
                fieldName 
fileName
                fDelete
(fileName)
            CASE 
typTexte 
                myString 
fLoadText(fileName)
                
fDelete(fileName)
            
OTHER CASE
                
myString fLoadText(fileName)
                
fDelete(fileName)
        
END
    END
DO
    IF (
NoSpace(fileName) <> ""THEN
        myString 
fLoadText(fileName)
        
fDelete(fileName)
    
END
END

RESULT
(myString)

Posté le : 2017/6/9 9:00
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2154
Hors Ligne
bonjour,

le probleme vient bien du retour du script
je test avec une image mais je n'arrive pas renvoyer dans le script php une valeur brut qui serait alors enregistrée dans un fichier et qui donne l'image

en fait je tombe sur un os avec les langues etrangeres si je met un alphabet au retour il me change les valeur du blob et donc le fichier image est corrompu

je vais voir comment regler cela pour que le script php renvoie la valeur brute qu'on puisse recuperer

Posté le : 2017/6/9 10:35
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2154
Hors Ligne
bonjour,

bon j'ai trouver la solution le script php va rendre les données en brut utf8 et code en hexa pour eviter les pertes , la classe sait gerer cela correctement et donc permet de recuperer le fichier image correctement

retecharge le zip PHP4WX-9.2.0.0 les script et classe sont passé en 9.2.0.1

ensuite voici mon code avec une ZR et un champs blob (la base doit etre en utf8_general_ci (pour moi mais en UTF8 cv'est important pour gerer les trucs correctement

voici le code d'aliementaion de ZR qui m'affiche une images :

vrequete est une chaîne 
"select nom,prenom,dateNaissance,adresse,imgContact  from contacts"
vindice est un entier

//ChangeAlphabet(alphabetUTF8,langueFrançais)
ChangeAlphabet(alphabetUTF8,langueArabe)
ZoneRépétéeSupprimeTout(ZR_contacts)

//monacces:CryptRetour=vrai
//monacces:methodeZip=vrai
SI MonAcces:mySQLExec(vrequete,1ALORS
    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    DateVersChaîne(MonAcces:mySQLLitColParNom(1,"dateNaissance" ),"JJ/MM/AAAA")
            
ZR_contacts[vindice].LBL_ADRESSE        MonAcces:mySQLLitColParNom(1,"adresse" )
            
ZR_contacts[vindice].imgClient             MonAcces:mySQLLitMemo(1,5,"")
        
FIN
    FIN
SINON
    Erreur
(MonAcces:mySQLGetErrorMessage())    
FIN


voila j'ai des données en arabe et les 2 fonctionnent en meme temps
pour l'image il suffit de mettre le code comme je l'ai mis pas le nom du champs dans l'appel pour une image tu peux recuperer le source ou contenu du fichier

ATTENTION il faut que monAcces:CryptRetour=Faux

sinon ca ne marchera pas
voila a tester mais ca marche chez moi avec windev mobile 19

Posté le : 2017/6/9 13:20
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: PHP4WD + SQLITMEMO
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2154
Hors Ligne
pour info je suis desssus depuis hier

marche tres bien en php4WX avec windev mais en mobile marche en mode emulateur mais pas sur le tel (je pense que le chemin a l'image doit pas etre bon et android veut un fichier local pour afficher ca

donc en plus attention ne marche pas si on crypte le retour
on peut le zipper pas de probleme mais le crypte change des caractere dans le texte original du fichier et donc l'image est comrrompu

bref sur mobile (mise a part windeows sur les tablette , il vaut mieux mettre des liens sur les images que de stocker l'image en base en plus ca evitera les ralentissement car une images tres petite peut peser jusu'a 300 Ko imaginez 1000 ligne a remonter et on doit atendre pour avoir 3 mO qui arrive sur le tel et en plus attention a la memoire du tel

bref voila les script et cette version sont plus sur et plus rapide mais pour les images sur tel mieux vaut avoir un lien http pour eviter de prendre trop de memoire sur le tel

Posté le : 2017/6/9 16:11
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant




[Recherche avancée]