Load an image from memory into a SQL database (not from file)
The sendImageToDB procedure results in. zero bytes for the column, but no database error is produced. How do I know the update is working?'
Code: Select all
Procedure sendImageToDB(source.s)
Debug "currentEdit = "+Str(currentEdit)
*buffer = EncodeImage(#originalImage, #PB_ImagePlugin_PNG) : Debug "*buffer = "+Str(MemorySize(*buffer)/1024)+"KB."
If *buffer
SetDatabaseBlob(#SQLDatabase, 0, *buffer, MemorySize(*buffer))
SQL.s = "update Title set "+source+" = '?' where uid ='"+StringField(GetGadgetText(UIDBox),2,":")+"';"
If DatabaseUpdate(#SQLDatabase, SQL) : Debug "Blob = "+Str(DatabaseColumnSize(#SQLDatabase, currentEdit)/1024)+"KB" : Else : Debug"ERROR: "+SQL : EndIf
FreeMemory(*buffer)
EndIf
EndProcedure
Procedure getImageFromDB(column.i)
pictureSize = DatabaseColumnSize(#SQLDatabase, column)
If pictureSize > 0
*picture = AllocateMemory(pictureSize)
GetDatabaseBlob(#SQLDatabase, column, *picture, pictureSize)
CatchImage(#originalImage,*picture)
FinishDatabaseQuery(#SQLDatabase)
FreeMemory(*picture)
Else
Debug "ERROR: No image in column "+Str(column)
ProcedureReturn 0
EndIf
EndProcedure