Newsgroup: it.comp.lang.visual-basic
Titolo: AIUTO! Salvare contenuto oggetto ole o ameno il suo path

Ciao e grazie anticipate a tutti....
Come posso salvare in un file MDB (dove i relativi campi sono di tipo OLE)
il contenuto di un oggetto OLE che l'utente dovrebbe caricare a run time??
ES.: l'utente apre tramite l'oggetto ole sul form, un'immagine jpg o bmp
o...,come faccio a salvare l'immagine (o almeno il suo path)  all'interno
del MDB?
ancora grazie.
ciao
Tex

 wrote in message
8f4aqj$p93$1...@fe2.cs.interbusiness.it...



Per forza è stato Pal a rispondere ... Pal sa sempre tutto !
Comunque guarda nell'help le funzioni AppendChunk e GetChunk (che sono
metodi del Field di un RecordSet).
In caso di problemi maggiori ... riposta il messaggio.
                            Ciao

 metodi del Field di un RecordSet).
pal NON sa sempre tutto, anzi si accorge che quasi sempre non sa proprio una
mazza.
grazie comunque :)
su un ng usa anche a me avevano suggerito di usare append/get-chunk, ma
essendo solo una prova veloce non li ho testati e sono ricorso a un
controllo data e due picbox, uno visualizza l'immagine nel db, l'altro ne
carica una da file per poterla salvare nel db. prob si puo' semplificare e
migliorare parecchio, ma cosi' +- funziona -- fermo restando che con 6
piccolissimi jpeg il db e' schizzato a 1 mega e 6 -- ricordati che access si
tiene dentro il bitmap completo (bmp). quindi consiglierei caldamente di
salvare nel db *percorso+nome* dell'immagine, magari in due campi testo di
255:
-- disco + percorso
-- nome_file
cosi' se p.e. sposti le immagini fai un semplice replace secco.
le caricherai con qc tipo (se usi un datacontrol):
with data1.recordset
    pic1=loadpicture(!percorso & !nome_file)
endwith
cerca di gestire gli errori (file mancante, corrotto, ecc.), metti il
backslash dove serve, ecc.
ciao, a.
questa e' la struttura del db che ho usato come test, come vedi e' al
minimo:
TABLE: immagini
------FLD: pcnum
---------Type: 4 (N-LONGINT) [contatore]
---------Size: 4
---------Required: False
------FLD: desc
---------Type: 10 (TEXT)
---------Size: 255
---------Required: False
------FLD: img
---------Type: 11 (OLE)
---------Size: 0
---------Required: False
------IDX: desc
---------desc
------IDX: pcnum
---------pcnum
e questo e' il codice del form: 2 cmd, 1 txt per la ricerca indicizzata per
nome, 1 dbgrid, 2 picboxes, drive e file list.
Option Explicit
Dim db As Database, rs As Recordset
Dim MyPath As String
Private Sub cmdAdd_Click()
    If File1.filename = "" Then
        Beep
        Exit Sub
    End If
    With Data1.Recordset
        .AddNew
        Picture1 = LoadPicture(MyPath & File1.filename)
    End With
    'DBGrid1.Refresh
End Sub
Private Sub cmdShow_Click()
    If File1.filename = "" Then Exit Sub
    Picture2.ZOrder
    Picture2 = LoadPicture(MyPath & File1.filename)
End Sub
Private Sub Data1_Reposition()
    Picture1.ZOrder
End Sub
Private Sub Dir1_Change()
    MyPath = IIf(Right(Dir1.Path, 1) = "\", Dir1.Path, Dir1.Path & "\")
    File1.Path = MyPath
End Sub
Private Sub File1_Click()
    Picture2.ZOrder
    Picture2 = LoadPicture()
End Sub
Private Sub File1_DblClick()
    cmdShow_Click
End Sub
Private Sub Form_Load()
    MyPath = IIf(Right(Dir1.Path, 1) = "\", Dir1.Path, Dir1.Path & "\")
    File1.Path = MyPath
    Set db = OpenDatabase("oletest.mdb")
    Set rs = db.OpenRecordset("immagini")
    rs.Index = "desc"
    Set Data1.Recordset = rs
    With Picture2
        .Left = Picture1.Left
        .Top = Picture1.Top
        .Width = Picture1.Width
        .Height = Picture1.Height
    End With
    Picture1.ZOrder
    Me.Show
    txtSearch.SetFocus
End Sub
Private Sub Form_Unload(Cancel As Integer)
    rs.Close: db.Close
    Set rs = Nothing: Set db = Nothing
End Sub
Private Sub txtSearch_Change()
    Data1.Recordset.Seek ">=", txtSearch
    'se la ricerca la fai sul contatore, userai val(txtSearch)
End Sub
Private Sub txtSearch_GotFocus()
    txtSearch.SelStart = 0
    txtSearch.SelLength = Len(txtSearch)
End Sub