Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mysql4wd et les champs mémos

3 réponses
Avatar
Roumegou Eric
Bonjour,

Jusqu'à présent j'évitais de gérer des images ds mes bases (leur
préferant le chemin de l'image) mais là j'aurais besoin de stocker dans
la base l'image pour pouvoir l'exploiter sur des traitements WD en
C/S.

Car pour l'instant j'utilise l'image en
http:\\monserveur....\monimage.jpg (chemin stocké) pour faire des
éditions et c'est dramatiquement trop long.

Donc je voudrais aspirer cette image distante et m'en créer une
vignette dans un champs blob de ma table.

donc avec la classe mysql4wd version 2.0.0.2, comment :

- Ecrire l'image ds la table
Sachant que je ferais un HTTPDonneRésultat puis un dSauveImageJPEG de
mon url pour en faire une vignette.
Dois-je passer par un champs image ?

- lire l'image
Ensuite comment récupérer cette image dans un état, une ZR ?

- quelle type de champs mysql rajouter ? blob ? longblob ? .ou autre ?


Merci de vos réponses.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)

3 réponses

Avatar
Firetox
Bonjour,

- Ecrire l'image ds la table
Sachant que je ferais un HTTPDonneRésultat puis un dSauveImageJPEG de mon
url pour en faire une vignette.
Dois-je passer par un champs image ?


apres ton dsauveImage tu as un fichier
il suffit de l'envoyer dans la requete ex maTable(ID ,MonBlob)
marequete = "insert into maTable(ID,MonBlob) Values
(1,"+monAcces:MySQLEscapeString(fchargeTexte("c:monimage.jpeg"))
l'execution de la requette envoi le blob
idem pour l'update

en fait sous mySQL les blobs sont des colonnes comme les autres il n'est pas
necessaire de faire quelque chose de speciale pour les blob
on fait comme n'importe quelle colonne


- lire l'image


il y a la methode mySQLLitMemo qui lit la colonne comme un mySQLLitCol
tu peux directement envoyer cela dans une image de la fenetre par
mySQLLitMemo mais elle renvoie normalement la chaine qui ne reste plus qu'a
enregistrer pour refaire le fichier jpeg


Ensuite comment récupérer cette image dans un état, une ZR ?


idem mySQLLitMemo comme n'importe quelle colonne et ensuite l'affiche dans
une image de l'etat

- quelle type de champs mysql rajouter ? blob ? longblob ? .ou autre ?


blob pour les image < 2 Mo sinon longBlob


Merci de vos réponses.


de rien

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)



@+
Firetox
Avatar
Roumegou Eric
Le 22/05/2008, Firetox a supposé :
Merci de ta réponse Fred

Pour la sauvegarde du blob, pas de problème; ça a marché du premier
coup.
Par contre pour restituer l'image, je n'est réussi qu'avec ceci

NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")
fSauveTexte(gPrivateRep+"/wimg.jpg",wch2)
GIF_VIG=gPrivateRep+"/wimg.jpg"


avec GIF_VIG mon champs Image.

J'ai essayé
NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,GIF_VIG)
comme
NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")

Bon OK, en écrivant ceci je me suis dit que je n'avais pas testé ceci

NumCol++;GIF_VIG=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")

et c'est bien ainsi qu'il faut !

Donc j'ai rien dit ... mais ça permet de laisser une trace dans ce
forum.

Merci encore.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Roumegou Eric
Dans son message précédent, Roumegou Eric a écrit :
Le 22/05/2008, Firetox a supposé :
Merci de ta réponse Fred

Pour la sauvegarde du blob, pas de problème; ça a marché du premier coup.
Par contre pour restituer l'image, je n'est réussi qu'avec ceci

NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")
fSauveTexte(gPrivateRep+"/wimg.jpg",wch2)
GIF_VIG=gPrivateRep+"/wimg.jpg"


avec GIF_VIG mon champs Image.

J'ai essayé
NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,GIF_VIG)
comme
NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")

Bon OK, en écrivant ceci je me suis dit que je n'avais pas testé ceci

NumCol++;GIF_VIG=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")

et c'est bien ainsi qu'il faut !

Donc j'ai rien dit ... mais ça permet de laisser une trace dans ce forum.

Merci encore.



Autre précision sur un truc que je n'ais pas compris.
Pour l'état, j'ai été obligé de passer par
NumCol++;wch2=fSQL:mySQLlitmemo(gCurReq,NumCol,"GIF_VIG")
fictmp=gPrivateRep+"/wimg"+gif_id+".jpg"
fSauveTexte(fictmp,wch2)
GIF_VIG=fictmp

donc créer des fichiers temporaires différents. (sinon j'avais une
seule et meme image)
puis faire un fsupprime des wimg*.*

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)