PostgreSQL Blob image
Publié : sam. 11/juin/2011 9:34
Bonjour,
Après avoir travaillé les blob avec des images (logo et fond) sous sqlite, je cherche vainement à transférer mon programme sous postgreSQL pour le mettre en réseau. Or il semble que l'image ne soit pas sauvegardée dans la base. Le fichier en retour est vide. Y a t il une limite avec les jpg et le format bytea ? J'ai essayé avec catchimage et le transfert direct dans un fichier sans succès.
Merci de vos conseils.
Après avoir travaillé les blob avec des images (logo et fond) sous sqlite, je cherche vainement à transférer mon programme sous postgreSQL pour le mettre en réseau. Or il semble que l'image ne soit pas sauvegardée dans la base. Le fichier en retour est vide. Y a t il une limite avec les jpg et le format bytea ? J'ai essayé avec catchimage et le transfert direct dans un fichier sans succès.
Code : Tout sélectionner
Procedure EcrireLogo()
Image.s = Chemin+"Couvertures\S_Couverture.jpg"
SetGadgetText(#Text_0, "Couverture")
SetGadgetText(#Text_1, "Lecture fichier image")
LoadImage(#Image_1, Image)
SetGadgetState(#Image_0, ImageID(#Image_1))
TailleImage=FileSize(Image)
*buffer=AllocateMemory(TailleImage)
ReadFile(#File_0,Image)
ReadData(#File_0,*buffer,TailleImage)
CloseFile(#File_0)
SetGadgetText(#Text_1, "Ecriture PgSQL")
SetDatabaseBlob(#Base_0,0,*buffer,TailleImage)
If DatabaseUpdate(#Base_0, "INSERT INTO image(titre,image) VALUES ('Couverture', $1 );")=0
Debug DatabaseError()
EndIf
FreeMemory(*buffer)
FinishDatabaseQuery(#Base_0)
EndProcedure
Procedure LireBase()
DatabaseQuery(#Base_0,"SELECT image FROM image WHERE titre = 'Couverture';")
NextDatabaseRow(#Base_0)
picsize = DatabaseColumnSize(#Base_0,0)
*blobreadbuffer = AllocateMemory(picsize)
GetDatabaseBlob(#Base_0, 0, *blobreadbuffer, picsize)
; If CatchImage(#Image_1, *blobreadbuffer,picsize)
; SetGadgetState(#Image_0, ImageID(#Image_1))
; Else
; MessageRequester("Erreur","",0)
; EndIf
;EndIf
;MessageRequester("0k","",0)
;FinishDatabaseQuery(#Base_0)
Image2.s=Chemin+"Couvertures\S2_Couv.jpg"
CreateFile(#File_0,Image2.s)
WriteData(#File_0,*buffer,PictureSize)
CloseFile(#File_0)
FreeMemory(*blobreadbuffer)
FinishDatabaseQuery(#Base_0)
EndProcedure