Ben al 2 dagen aan het stoeien om images (JPEG) op te slaan in Interbase (Blob). In Firebird geen probleem, maar Interbase weigert, continue Exceptions
Dit is mijn test-code (FDConnection1 staat op main-form):
Iemand enig idee hoe op te lossen? Moet met FMX, omdat ook moet gaan draaien in iOS/Android. Ophalen van data/andere queries/updates/inserts werken allemaal, alleen die Blob-update en/of insert niet. Ook geprobeerd met StoredProc, zelfde resultaat.Delphi Code:
procedure TForm2.Button1Click(Sender: TObject); var BlobStream: TMemoryStream; oImage: TImage; cName: String; oQuery: TFDQuery; nID: Integer; begin // if OpenDialog1.Execute then begin cName := 'P:\Jonker\Images\test.jpg'; // nID := FDQuery1.FieldByName('DrawingNrID').Value; nID := 746; try BlobStream:= TMemoryStream.Create; oImage := TImage.Create(Self); oQuery := TFDQuery.Create(nil); oQuery.Connection := FDConnection1; fdConnection1.Connected := True; try oImage.Bitmap.LoadFromFile(cName); oImage.Bitmap.SaveToStream(BlobStream); oImage.Bitmap.SaveToFile('c:\temp\image.jpg'); BlobStream.Seek(0, 0); oQuery.SQL.Clear; oQuery.SQL.Append('Update Drawings set Drawing = :Drawing where DrawingNrID = ' + IntToStr(nID)); oQuery.ParamByName('nID').Value := nID; // Hieronder gaat het fout oQuery.ParamByName('Drawing').LoadFromStream(BlobStream, ftBlob); oQuery.ExecSQL; oQuery.Close; BlobStream.Free; oImage.Free; oQuery.Free; except // Handle exceptions Raise; end; except BlobStream.Free; oImage.Free; oQuery.Free; end; end; end;
Bookmarks