• User Newbie

    Scaricare un Attachment

    Salve a tutti,
    ho un database ACCESS 2013 che interrogo da una pagina ASP.

    la mia stringa di connessione è :
    *
    Dim conn *
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= \isocompserver\asp\DB_production.mdb; Persist Security Info=False;")
    sql = "SELECT * FROM Strumenti WHERE Strumenti.Categoria ='Strumenti Elettronici' ORDER BY Marca"
    Set RsMacchina = Server.CreateObject("ADODB.Recordset")
    *RsMacchina.Open sql, conn ,3,3

    Sfoglio la tabella che mi interessa fino ad arrivare al Record che cerco :

    <%
    *do while not RsMacchina.eof
    *....

    e Mando in visualizzazione il campo che mi interessa in html :

    •    <td bordercolor="#0000ff" height="21" width="134" align="middle" >*
      
    •    <font size="2">&nbsp;<% response.write  RsMacchina.fields("Ubicazione")%></font></td>*
      

    ecc ...

    uno di questi campi del record e un campo Attachment e vorrei scaricare l'attach, che è una foto
    per mostrarla sulla pagina.
    non ci riesco neanche a salvarla sul disco.

    in realtà ho trovato questo codice all'indirizzo : msdn.microsoft.com/en-us/library/office/ff191852.aspx

    • ' Instantiate the child recordset.
      Set rsPictures = rsEmployees.Fields("Pictures").Value
      ' Loop through the attachments.
      While Not rsPictures.EOF
      ' Save current attachment to disk in the "My Documents" folder.
      rsPictures.Fields("FileData").SaveToFile
      _ "C:\Documents and Settings\Username\My Documents"
      rsPictures.MoveNext
      ** Wend *

    l'ho modificato secondo per la mia pagina :

    • ' Instantiate the child recordset.
      Set rsPictures = RsMacchina.Fields("Foto").Value
      ' Loop through the attachments.
      While Not rsPictures.EOF
      ' Save current attachment to disk in the "My Documents" folder.
      rsPictures.Fields("FileData").SaveToFile
      _ "C:\Documents and Settings\Username\My Documents"
      rsPictures.MoveNext
      ** Wend

    *ma come primo e insormontabile errore mi dice :

    [TABLE="width: 100%"]
    [TR="class: alt"]
    ErrorCode[/TH]
    [TD="class: event-data"]800a01a8[/TD]
    [/TR]

    Description[/TH]
    [TD="class: event-data"]Necessario oggetto: '[undefined]'[/TD]
    [/TR]
    [/TABLE]

    alla prima linea di codice

    *Set rsPictures = RsMacchina.Fields("Foto").Value
    *
    Leggendo qui e la mi dice di creare prima l'oggetto, ma non ho capito cosa vuole
    mi riscite ad aiutare ??

    Grazie


  • Moderatore

    Ciao spidernet e benvenuto sul Forum...

    Non conosco il tipo di campo Attachment di Access, ma credo che debba essere necessario gestirlo come fosse un binary...
    Se così fosse quando recuperi quel campo devi prima trasformarlo nel file che desideri e salvarlo su disco.

    Oppure in quel *rsPictures.Fields("FileData") *specifico non c'è nulla...


  • User Newbie

    Salve artcava,
    ti ringrazio per la risposta.

    in *rsPictures.Fields("FileData") *c'è una foto, lo so perchè ho il database sotto mano e conosco il record che sto guardando.

    puoi spiegarmi come eseguire questa operazione ? ...
    "*devi prima trasformarlo nel file che desideri e salvarlo su disco."
    *si tratta di foto allegate.

    Grazie.


  • Moderatore

    OK, ho riletto il tuo codice e soprattutto dove riporti l'errore...
    In realtà l'errore viene dato prima:

    *Set rsPictures = RsMacchina.Fields("Foto").Value


    Nell'esempio da cui sei partito si parla di DAO, mentre nel codice stai utilizzando ADO...
    Probabilmente nel Field "Foto" non c'è una proprietà Value...
    Magari sbaglio, non uso più ADO da un bel po' di tempo e questi dettagli non li ricordo proprio...


  • User Newbie

    Non sono ancora riuscito a risolvere, Nessun aiuto in merito ?

    Grazie.