SQLite: Verständnisfrage zu SetDatabaseBlob()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

SQLite: Verständnisfrage zu SetDatabaseBlob()

Beitrag von ProgOldie »

Ich habe eine Verständnisfrage zu SetDatabaseBlob(). Dazu folgende Prozedur:

Code: Alles auswählen

EnableExplicit
Procedure prepareBLOB(DBNum.i,FName.s,BlobNr.i)
  ;Liest die Datei FName ein und bereitet den BLOB 
  ;mit der Nummer BlobNr vor
  Protected FileHandle.i,size.i,*mem
  If ReadFile(FileHandle, FName)
    size = Lof(FileHandle)
    If size
      *mem = AllocateMemory(size)
      If *mem
        ReadData(FileHandle, *mem, size)
        SetDatabaseBlob(DBNum, BLOBNr, *mem, size)
      EndIf
    EndIf
  CloseFile(FileHandle)
  EndIf 
EndProcedure
Was eigentlich macht SetDatabaseBlob()? Merkt es sich lediglich eine Zuordnung der BlobNr zum Speicherbereich? Dann könnte FreeMemory(*mem) erst nach Databaseupdate() folgen. Oder bewirkt es etwas ganz anderes?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18