Hallo, 
habe die Sache bis Dato wie folgt gelöst! Über das ImageGadget hole ich mir ein Bild;
Code: Alles auswählen
      Case #I_Bild
        If EventDropImage(#myDropImage)
          ResizeImage (#myDropImage,210,215)
          SetGadgetState(#I_Bild, ImageID(#myDropImage))
          If CreateImage(SpeicherBild, ImageWidth(#myDropImage), ImageHeight(#myDropImage))
            If StartDrawing(ImageOutput(SpeicherBild))
              DrawImage(ImageID(#myDropImage),0,0)
              StopDrawing()
              SaveImage(SpeicherBild, #SavePath+"redrawn clipboard Image.bmp")                  
speicher es in der Festplatte. Anschliessend hole ich mir das gespeicherte Bild wie folgt mit folgender Procedure wieder für das speichern in der Datenbank:
Code: Alles auswählen
Procedure DatensatzHinzu()
    DB=1
  Bildspalte=4
    If CreateFile(0, DatabaseFile$)
    CloseFile(0)
  EndIf
    OpenDatabase(DB, DatabaseFile$, "", "", #PB_Database_SQLite)
  DatabaseUpdate(DB, "Create Table Velindos (ID INTEGER,Stichwort TEXT,Notiz TEXT,Pfad TEXT, myBild BLOB)")
    ID$=GetGadgetText(#S_Data) 
  STICHWORT$=GetGadgetText(#S_Stichwort) 
  NOTIZ$=GetGadgetText(#S_Notiz) 
  PFAD$=GetGadgetText(#S_Pfad) 
    ReadFile(0,  #SavePath+"redrawn clipboard Image.bmp")
  Buffersize = Lof(0)
  Buffer = AllocateMemory(Buffersize)
  ReadData(0, Buffer, Buffersize)
  CloseFile(0)
    SetDatabaseBlob(DB, 0, Buffer, Buffersize)
  DatabaseUpdate(DB, "Insert Into Velindos (ID, Stichwort, Notiz,Pfad,myBild) Values ('"+ID$+"','"+STICHWORT$+"','"+NOTIZ$+"','"+PFAD$+"',?);")
  DatabaseQuery(DB, "Select * From Velindos")
  NextDatabaseRow(DB)
    ID$= GetDatabaseString(DB,0)
  SetGadgetText(#S_Data,ID$)
  STICHWORT$= GetDatabaseString(DB,1)
  SetGadgetText(#S_Stichwort,STICHWORT$)
  NOTIZ$= GetDatabaseString(DB,2)
  SetGadgetText(#S_Notiz,NOTIZ$)
  PFAD$= GetDatabaseString(DB,3)
  SetGadgetText(#S_Pfad,PFAD$)
    ; hier auslesen:
  If DatabaseColumnType(DB, Bildspalte) = #PB_Database_Blob
    picsize = DatabaseColumnSize(DB,Bildspalte)
    If picsize
      *blobreadpuffer = AllocateMemory(picsize)
      If *blobreadpuffer
        If GetDatabaseBlob(DB, Bildspalte, *blobreadpuffer, picsize)
          myImage = CatchImage(0, *blobreadpuffer)
          ;ImageGadget(#I_Bild, 240, 175, 210, 215, myImage, #PB_Image_Border)
          SetGadgetState(#I_Bild,myImage)
        Else
          Debug "GetDatabaseBlob ist fehlgeschlagen"
        EndIf
        FreeMemory(*blobreadpuffer)
      Else
        Debug "Nicht genügend Speicher vorhanden"
      EndIf
    Else
      Debug "picsize is null"
    EndIf
  Elsenif
    Debug "DatabaseColumnType(0, 1) ist kein Blob"
  EndIf
    CloseDatabase (DB)
  EndProcedure
Resume: Es ist mir nicht gelungen das Bild elegant an die Datenbank zu übergeben. Hat richtig Schweiss gekostet diese Lösung und habe anscheinend einige Leute verkrault, bin aber Anfänger mit Purebasic und muss mich auch erst hineinleben. 
Gruss ... Velindos
PS: Bin für jeden Verbesserungsvorschlag zu haben!
 
			
			
									
									Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)