Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#2

AW: TIdBytes in Datenbankfeld speichern

  Alt 9. Aug 2022, 19:05
Du versuchst hier ein array of Byte einer AnsiString-Eigenschaft zuzuweisen. Das klappt natürlich nicht und sollte auch in dem Fehler stehen.
Dass TFDParam offensichtlich auch keine BLOBs sondern nur CLOBs unterstützt (selbst AsBlob repräsentiert ein CLOB), ist auch sehr seltsam. Könnte daran liegen, dass man der Länge von TBytes oft nicht vertrauen kann (sie sind meist ein Vielfaches von 4 Kibi groß) und daher eine separate Längenangabe zu Rate ziehen müsste.

Ohne Ahnung von Firebird zu haben:
Konvertiere deinen BLOB (TIdBytes) in einen "CLOB" (RawByteString) oder schreibe ihn in einen TMemoryStream (ggf. einen Erben) und weise ihn AsStream zu (dadurch besitzt TFDParam den Stream).

Ich bin mir übrigens nicht sicher, ob deine Methode eventuell öfter aufgerufen wird, als du denkst/möchtest.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat