Newsgroup: it.comp.lang.visual-basic
Titolo: inserire immagini in mdb

 Grazie.
--
www.comune.modena.it/cittadini/apal/tmp/img_db.zip

 news:8v436v$fi5$2...@lacerta.tiscalinet.it...





Sono andato avanti nel tempo  per leggere  prima le risposte
Grazie A Tutti.

Comportamento non molto corretto.......

 ha scritto nel messaggio
news:8v436v$fi5$2...@lacerta.tiscalinet.it...


 ha scritto nel messaggio
news:8v436v$fi5$2...@lacerta.tiscalinet.it...


          objField.AppendChunk strBuffer
[ZACK]
Ho notato il tuo uso di Appendchunk e mi torna in mente
un vecchio problema..
Quando leggo un'immagine da un db con GetChunk mi
inserisce un 70-ina di bytes prima del classico BM che
identifica l'inizio della bitmap?
Perche?
Esiste qualche altro modo di visualizzare una bitmap
senza collegarla direttamente ad un campo con un
controllo Data?
--
Fibia "Sakamoto" FBI
URL: 
www.geocities.com/fibiafbi
E-Mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Membro #25 delle BT Sez. Sud

 ha scritto nel messaggio
news:8van4f$lvh$1...@lacerta.tiscalinet.it...


 metterle già compresse tipo jpg o tif.
lo so. non era un mio problema. io non inserirei mai immagini in un db.
figuriamoci access.


 metterle già compresse tipo jpg o tif.
dario, credo di averlo detto io varie volte. anzi, ho detto una cosa un po'
diversa: anche se metti dentro un jpg access incamera una bitmap non
compressa. tieni presente che il formato grafico di microsoft e' il bmp...
www.comune.modena.it/cittadini/apal/tmp/img_db.zip
questo db contiene pochissimi piccoli jpg: invece di essere 150k, e' 1.5 mb.
se le immagini sono destinate ad aumentare, tenerle nel db e' una cosa poco
sensata. anche perche' se non sbaglio access ha un limite di 1 gb.
ciao, a.

 > Dario Di Marino:

pal, mi sembra che il discorso sia diverso. Nel db non vengono memorizzate
immagini in quanto immagini ma come "tot numero di byte". Se ho capito
bene...
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------


Newsgroups: it.comp.lang.visual-basic
Subject: Re: [?] Inserire un'immagine in un record Access '97
Date: Fri, 14 Apr 2000 23:46:26 +0200
Ti posto queste due funzioni - una legge un bitmap standard dalla clipboard
e tramite un oggetto PictureBox, la visualizza e salva l'immagine in un
campo nel formato long binary.
L'altra funzione fa l'esatto opposto (senza copiare nella clipboard).
Il "salva l'immagine" č intendo che salva i dati binary, non l'oggetto. Il
che significa che se fai un report con Access l'immagine non viene
direttamente mostrata. Occorre utilizzare la seconda funzione per
decodificarla.
Mi pareva di ricordare che con OleCreatePictureIndirect si sarebbe potuto
facilemente convertire l'immagine in un oggetto OLE compatibile con il
formato "Immagine" di Access, ma non č cosě. Proverň.
'Acquisisce un bitmap dalla clipbord, lo salva come file
'e lo inserisce in un campo del database come long binary
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim arrBuff() As Byte
Dim lngChunk As Long
Dim FileName As String
Dim hFile As Long
FileName = Environ$("temp")
FileName = FileName & IIf(Len(FileName) > 0, "\temp.dat", "c:\temp.dat")
lngChunk = 4096
ReDim arrBuff(lngChunk)
Picture1.Picture = Clipboard.GetData
SavePicture Picture1.Picture, FileName
Set db = DBEngine.OpenDatabase("<NomeDatabase>")
Set rs = db.OpenRecordset("<NomeTabella>", dbOpenTable)
rs.MoveFirst
hFile = FreeFile(0)
Open FileName For Binary Access Read As hFile
rs.Edit
Do While Not EOF(hFile)
Get #hFile, , arrBuff
rs!<NomeCampo>.AppendChunk arrBuff
Loop
Close hFile
rs.Update
Kill FileName
Set Picture1.Picture = Nothing
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
Clipboard.Clear
'Carica il bitmap dal campo long binary e lo mostra
'in un oggetto picturebox
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim arrBuff() As Byte
Dim lngChunk As Long
Dim nChunks As Long
Dim lngBitmapOffset As Long
Dim FileName As String
Dim hFile As Long
Dim Counter As Long
FileName = Environ$("temp")
FileName = FileName & IIf(Len(FileName) > 0, "\temp.dat", "c:\temp.dat")
lngChunk = 4096
ReDim arrBuff(lngChunk)
Set db = DBEngine.OpenDatabase("<NomeDataBase>")
Set rs = db.OpenRecordset("<NomeTabella>", dbOpenTable)
rs.MoveFirst
lngBitmapOffset = 0
nChunks = (rs!Campo5.FieldSize / lngChunk) + 1
hFile = FreeFile(0)
Open FileName For Binary Access Write As hFile
For Counter = 1 To nChunks
arrBuff = rs!<NomeCampo>.GetChunk(lngBitmapOffset, lngChunk)
Put #hFile, , arrBuff
lngBitmapOffset = lngBitmapOffset + lngChunk
Next Counter
Close hFile
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
Picture1.Picture = LoadPicture(FileName)
Kill FileName