Newsgroup: it.comp.software.database
Titolo: Database di immagini

  Scusate l'eventuale FAQ, ma sono nuovo di questo gruppo. Avrei una
domanda facile facile su ACCESS (2000). Nel momento in cui inserisco
un'immagine associata al record come posso evitare di far diventare
enorme il DB? Mi spiego meglio: sia che l'immagine OLE sia collegata o
incorporata, per delle figurine ridicole tipo JPG da 50K mi trovo
caricati quasi 2Mb a record!!! Ma cosa fa Access?? Carica per ogni
record l'applicativo OLE correlato (in questo caso Paint)? O
semplicemente traduce il JPG in formato non compresso e lo ingloba
comunque?
     Vi ringrazio anticipatamente per l'aiuto
			Marco


Cerca su 
www.sitocomune.com
  e trovi quello che ti serve per implementare
correttamente un archivio d'immagini.
Ciao, warp

io ho fatto così...e mi sembra che funzioni...
ho creato un campo foto nella tabella dei record  e li ho inserito il
percorso completo
poi ho creato un'immagine sulla maschera con queste caratteristiche nelle
proprietà
percorso: lasciato vuoto
immagine: collegata
poi sull'evento SU Corrente della maschera ho inserito:
immagine.picture=foto
dove foto è il campo della tabella e immagine è l'immagine sulla maschera
ti conviene creare una casella di testo sulla maschera chiamata foto e con
origine controllo proprio il campo foto della tabella.
ciao

 ha scritto

ole l'ho provato con access97 e vb, e memorizza la bitmap non compressa. se
vuoi vedere l'esempio, forse riesci a girarlo in vba. img-db, sul mio sito.
per fare molto presto, li' ho provato a collegare un picturebox al campo
ole. quando aggiungi un record, ti basta mettere l'immagine nel picbox e se
la salva lui.
pero' vedrai che con pochissimi bmp piccoli il db gia' cresce un bel po'.
nb: per calcolare l'occupazione reale di un immagine, non usare _mai_ jpeg,
gif, png e altri formati compressi. prova a salvare l'immagine come bmp o
tif. oppure fai un paio di moltiplicazioni, vedrai subito che un 1024 * 768
* 24 bit/pixel si prende 2.2 mb. poi lo puoi anche comprimere a 50k, di
solito perdendo in colori o in definizione dell'immagine, ma la stazza resta
quella.
con vb, non so se e' possibile con vba, il sistema normalmente corretto e'
memorizzare percorso e nome dell'immagine in un campo testo, lasciando
l'immagine su disco. poi per visualizzare si usa qc come
    picture1 = loadpicture(nome_campo_testo)
in questo modo puoi inserire tutte le img che ti pare. devi solo prevedere
un errore di caricamento: immagine mancante, difettosa, ecc.
non so se access2k ha la possibilita' di conservare dati binari. se e'
possibile, puoi scaricare man mano su disco il contenuto del campo,
chiamarlo p.e. tmp.jpg e usare
    picture1=load([percorso &] "\tmp.jpg")
ma non ci ho mai provato.
in ogni modo, se il db cresce un po', poi ti trovi problemi di backup, pack,
ecc. ecc.
non e' il massimo. forse coi db seri, sqlserver, oracle e compagnia
cantante, tira un'altra aria, ma access non e' un db molto professionale,
anche se tutti lo usiamo allegramente :))
altre info cercando "appendchunk", o forse "append chunk",
nei ng di vb via google
http://groups.google.com/advanced_group_search
hth, a.
--
www.comune.modena.it/cittadini/apal/

  Ringrazio tutti per l'aiuto. Alla fine il consiglio č unanime: non
utilizzare OLE ma associare l'immagine all'atto della visualizzazione:
faro' sicuramente cosě. Mi stupisce un po' il fatto che Access non
preveda una gestione migliore e magari specifica delle immagini,
prevedendo i formati compressi. La generalizzazione ad oggetto OLE e'
sicuramente molto versatile ma poco pratica nel caso  di immagini.
			M.P.