PDA

View Full Version : [Access,C#] Inserire un Immagine nel DB memorizzato come oggetto OLE


ohi
12-09-2012, 17:59
Ciao vorrei inserire un immagine nel DB Access 2010, Immagine oggetto OLE, mi collego tramite OLEDB, non sò come impostare prd.DbType = DbType. ? ; Consigli?

MarcoGG
13-09-2012, 13:14
Mediante l'uso di un OleDbType.Binary o OleDbType.VarBinary.

In generale salvi a DB lo Stream dell'immagine o altro.
In teoria potresti usare una Stringa che rappresenta il flusso dati dell'oggetto da salvare.

Detto ciò, in un ambito Access te lo sconsiglio. I Campi "Blob" sono una scelta da evitare nella stra-grande maggioranza dei casi, e non sono certo immuni da errore ( rischio di scrivere l'immagine nel DB e di non poterla ricostruire poi in lettura ).
Solitamente in un DB ( e maggior ragione in un file Access, che oltretutto credo mantenga anche nella ver. 2010 il famoso limite dei 2 GB... ), si salvano nomi e/o percorsi dei files di "risorsa", e NON i files stessi. I files esterni li salvi in una directory apposita o anche in un unico archivio ( Zip ) gestibile facilmente con alcune libreire gratuite per .NET, come l'ottima DotNetZip...

Quale che sia la tua scelta ricorda di usare i Parameters OleDb con Access. A tale scopo ti segnalo questo mio Articolo Blog, che penso troverai utile per questa e molte altre operazioni su Access :

http://marcoggblog.blogspot.it/2012/02/c-operazioni-base-access.html

ohi
13-09-2012, 18:51
Grazie mille per l'aiuto, non ho mai usato i "Blob" di Access, ho sempre salvato i nomi e/o percorsi dei files di "risorsa", proprio per questo ero curioso di utlizzarli per questa applicazione, ma credo che ascolterò i tuoi consigli. Grazie per avermi segnalato il tuo articolo ti faccio i complimenti davvero molto interessante.