Newsgroup: it.comp.lang.visual-basic
Titolo: Mettere delle immagini in un Database Access

Salve a tutti.
Volevo sapere come si può inserire un'immagine in un DB Access.
Nel mio programma ho una sezione in cui si inseriscono i dati della
propria società... tra cui anche un eventuale logo, da mettere poi in
alcune stampe usando il Crystal Report.
Il mio db ha una tabella, avente il campo che deve ricevere l'immagine
impostato come Oggetto OLE.
Nel mio programma, ho un controllo Picture, nel quale metto una
immagine tramite LoadPicture.
Allora:
1) Se uso i recordset, tipo 
   -) Recordset.Addnew
   -) Recordset!Immagine = MioControlloPicture.Picture
mi dice "Tipo di dati non corrispondenti"
2) Se uso
   -) Database.Execute("Insert INTO Immagine VALUES....." )
Non mi dà errore, ma non inserisce nulla.
3) Uso un controllo data
 
   -) Lo associo alla tabella del db
   -) Lo associo al controllo picture come suo DataSource 
   -) Imposto il DataFiled della picture al campo che deve contenere
l'immagine
Al momento di fare Data1.AddNew, mi da errore, dicendomi che il
controllo Data è associato ad un altro controllo (cioè la picture,
credo...). Se però prima faccio Data1.Refresh, mi fa fare l'AddNew...
ma al momento di fare Data1.Recordset!Immagine =
MioControlloPicture.Picture, mi da lo stesso errore del pto 1.
Il terzo metodo lo uso, però, anche in un altro form... ma qui non mi
dà l'errore all'AddNew... ed infatti faccio:
   -) Data1.AddNew
   -) Data1.Recordset!DescrizioneImmagine = strDescrizione
   -) Data1.Recordset.Update
senza mettere però Data1.Recordset!Immagine =
MioControlloPicture.Picture, poichè associando i controlli come
descritto, automaticamente la inserisce.
Per il pto 2 invece, come dicevo,  l'INSERT non mi dà errori, ma non
inserisce nulla... invece l'UPDATE (considerando che nella tabella ci
sia una immagine) funziona, cioè se cambio l'immagine al controllo
picture, poi l'update me lo fa. Quindi sono costretto ad inserire una
immagine col colore dello sfondo del controllo Picture (invisibile
cioè), e fara fare poi l'update... am è una cose che mi piace poco..
Le mie domande sono:
1) Che formato di immagine devo mettere nel controllo Picture??? Forse
è importante?
Ho provato tutti quelli che supporta: BMP, JPG, GIF... e con l'UPDATE
funziano.
2) Sbaglio nell'impostare il campo del DB come Oggetto OLE???
3) Devo usare i controlli Data... i Recordset... o come il pto 2 )?
Non so come fare...  Ho letto che mettere immagini in un db acces lo
gonfia molto... ma non mi interessa, poichè ce ne metto una sola...e
poi faccio al compattazione regolarmente all'avvio del programma...
Qualcuno di voi sa come risovere il problema?
Grazie a tutti e scusate se sono stato prolisso, ma l'ho fatto per
spiegrami meglio. 

1° - puoi collegare la picture all'oggetto data
2° - controlla i metodi appendchunk e getchunck
ciao
daniele



tempo fa mi sono trovato di fronte agli stessi problemi,
alla fine (per mancanza di tempo) mi sono
salvato solo il percorso dell'immagine in un campo di tipo testo...
ciao
Enrico

 salvato solo il percorso dell'immagine in un campo di tipo testo...
e' la soluzione migliore, visto che access memorizza il bitmap non
compresso.
se vuoi cmq provare l'immssione diretta:
www.comune.modena.it/cittadini/apal/tmp/img_db.zip
e' una prova veloce fatta per un amico, con picbox collegati a datacontrol.
ciao, a.

Grazie ragazzi... Ora provo. :)
Ciauz.