BLOB in SQLite3

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

BLOB in SQLite3

Beitrag von Karl »

Sqlite3 kann BLOB. Wie kann ich mit PureBasic eine Datei in eine Tabelle schmieren (ohne String)?

K.
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

... was isn ein BLOB bei Datenbanken?

ich kenn nur Blob als 3D-Gebilde...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: BLOB in SQLite3

Beitrag von Kiffi »

Karl hat geschrieben:Sqlite3 kann BLOB.
die SQLite3-Lib in den PBOSL auch ;-)

@Kaeru: Binary Large OBject

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Ja, gut - nachdem wir das geklärt haben, formuliere ich die Frage mal um:

Wie bewege ich eine Datei in eine BLOB-Tabelle, ohne dass ich die Datei vorher in einen String einlesen muss?

Vielleicht hat jemand hierzu eine Idee.

Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hab das zu PBOSL gehörende Beispiel mal geschrumpft. Hier werden 3 Bilder geblobt :mrgreen:
PS: Datenbank sollte bereits geöffnet sein, siehe Orginal Examples in PBOSL "blob_test.pb"

Code: Alles auswählen

Procedure WriteBlob()
  
  For lCounter = 0 To 2

    FF = ReadFile(#PB_Any, "demodata\image" + Str(lCounter) + ".jpg")
    
    If FF
      
      FileLen = Lof(FF)
      MemBuffer = AllocateMemory(FileLen)
      ReadData(FF,MemBuffer, FileLen)
      CloseFile(FF)

      Statement = SQLite3_Prepare(dbHandler, "insert into tblBlob (fldKey, fldBlob) values (?, ?);")
      
      If Statement
        
        Key$=Str(lCounter)

        SQLite3_Bind_Text(Statement, 1, @Key$)
        SQLite3_Bind_Blob(Statement, 2, MemBuffer, FileLen)
        SQLite3_Step(Statement)
        SQLite3_Finalize(Statement)
        
      EndIf  
      
      FreeMemory(MemBuffer)
      
    EndIf
    
  Next lCounter
  
EndProcedure  


PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Ah danke,

ich hatte nur 3.94 hier.


Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Antworten