DBA: Postgres e formato BLOB
copia linkDescrizione
Se si utilizzava una versione di Postgres uguale o successiva alla 9.0 si potevano ottenere errori nella visualizzazione automatica dei BLOB. Il motivo è dovuto ad una breaking-change introdotta da Postgres.
A partire dalla versione 18.5 di Instant Developer, dopo aver aperto la connessione, il sistema esegue il comando
SET bytea_output = 'escape'
Funzionalità interessate
L'utilizzo di campi BLOB su database Postgres.
Note
- Miglioramento relativo alla richiesta di assistenza 000083-2018.
-
Instant Developer estrae il contenuto dei campi BLOB tramite il driver (.NET o JDBC). Nelle versioni di Postgres precedenti la 9.0 il driver restituiva un array di byte contenente esattamente i byte del file caricato nel database.
A partire dalla versione 9.0, invece, è stato introdotto un nuovo parametro chiamato bytea_output (con valore predefinito "HEX") che dice al database come restituire il contenuto dei campi BLOB al driver. Tale settaggio non è configurabile (al momento) tramite stringa di connessione.
Quando viene effettuata la lettura del campo BLOB il driver restituisce ancora un array di byte ma il contenuto dell'array è il contenuto del file in formato "HEXADECIMAL". Per esempio se era stata caricata un immagine GIF il contenuto del file poteva essere il seguente:47 49 46 38 37 61 20 ... GIF87a
dove a sinistra sono mostrati i byte restituiti dal driver e a destra la loro rappresentazione in formato stringa. A partire dalla versione 9.0 di Postgres il driver restituisce i byte seguenti:34 37 34 39 34 36 33 38 33 37 36 31 32 30... 47494638376120
ovvero i byte di prima ma "convertiti" in un formato "HEX". - Instant Developer, quando viene aperta la connessione al database, cambia il valore del parametro bytea_output in "ESCAPE" per non dover convertire da formato HEX a formato originale prima di salvare il file su disco. Tale variazione è per sessione pertanto se il database è utilizzato da altre applicazioni queste non saranno influenzate. Qualora si desideri è possibile cambiare tale impostazione una volta per tutte sul dataabse.
Ultima modifica: 26/02/2019 / Validità: da 18.5.7200