/ / TBlobField (<Field>). SaveToStream taglia l'ultimo carattere NULL con delphi 2010 - blob, delphi-2010

TBlobField (<Field>). SaveToStream taglia l'ultimo char NULL con delphi 2010 - blob, delphi-2010

Se un blob contiene un rtf che termina con NULL char, delphi 2010 taglia questo carattere quando faccio SaveToStream o SaveToFile

C'è una possibilità di cambiare questo comportamento?

È un problema per me perché calcolo un hash su quei campi. Con Delphi 2010 ho questo problema ma non con Delphi 2007! e così il risultato dell'hash change ...

risposte:

0 per risposta № 1

Ok, ho trovato quando appare il bug:

  1. Delphi 2010
  2. Firebird DBMS
  3. L'oggetto TIBDatabase ha la proprietà charset (in il mio caso per esempio LC_CTYPE = ISO8859_1)

Se io rimuovere il set di caratteri, il metodo di salvataggio funziona bene!

Altre informazioni:
- Io uso il database di Firebird
- Il campo blob è il testo del sottotipo blob
- Il valore è un rtf e il suo terminatore è carattere nullo

NOTA: Quando rimuovi il set di caratteri, il testo nei campi BLOB non è leggibile correttamente, l'unica soluzione che ho trovato è il blob in varchar lanciato direttamente nella query