#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Apr 2010
    Posts
    3
    Rep Power
    0

    Pdf To - From Oracle Blob


    {VS 2005 - 2.0 - VB)
    Ciao a tutti...sto provando la lettura e la scrittura di files PDF in campi ORACLE BLOB.
    Ho 2 domande semplici, sono nuovo dell' argomento gestione file.

    1 - Per la scrittura ho trovato e sono riuscito in questo modo:

    'Open file on disk
    Dim txtFilepath As String = "Z:\TEST.PDF"

    Dim fs As FileStream = New FileStream(txtFilepath, FileMode.Open, FileAccess.Read)
    Dim r As BinaryReader = New BinaryReader(fs)
    myConnection.Open()

    Dim dati() As Byte = New Byte((fs.Length) - 1) {}
    fs.Read(dati, 0, CType(fs.Length, Integer))
    fs.Close()

    Dim InsertCommand As String = "INSERT INTO TESTBLOB (ID, DESCRIZIONE, DATI) VALUES ('002','TESTBLOB',:PDF)"

    Dim myCommand As OracleCommand = New OracleCommand(InsertCommand, myConnection)
    Dim myParam As OracleParameter = myCommand.Parameters.Add("PDF", OracleType.Blob)
    myParam.Value = dati

    myCommand.ExecuteNonQuery()
    myConnection.Close()
    r.Close()
    fs.Close()

    A riguardo devo chiedervi: la selezione del file per ora l' ho fatta con l' oggetto FileUpload ma ho visto che NON VIENE LETTO DI DEFAULT TUTTO IL PERCORSO COMPLETO DEL FILE SELEZIONATO se da Internet Explorer (il pił usato dove devo rilasciare la app) se non viene abilitata la lettura completa dei file in upload (IE - Strumenti - Opzioni - Protezione - Livello Personalizzato - Includi il percorso locale durante il caricamento dei file in server --> ATTIVA).

    1 DOMANDA: C' E' UN MODO MIGLIORE CHE LEGGA TUTTO IL PERCORSO DEL FILE IN UPLOAD PER POTERLO POI INERIRE NEL DB??

    ---------------------------------------------

    2 - Per la lettura sono riuscito ed ho trovato in questo modo:

    Dim myCommand As New OracleCommand("SELECT * FROM TESTBLOB WHERE ID = '001'", myConnection)
    myConnection.Open()
    Dim myReader As OracleDataReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default)
    Try
    While myReader.Read()
    Dim myLob As OracleLob = myReader.GetOracleLob(myReader.GetOrdinal("DATI"))
    If Not myLob.IsNull Then
    Dim FN As String = myReader.GetString(myReader.GetOrdinal("DESCRIZIONE"))
    Dim fs As FileStream = New FileStream("Z:\" + FN + ".pdf", FileMode.Create)
    Dim w As BinaryWriter = New BinaryWriter(fs)
    w.Write(myLob.Value)
    w.Close()
    fs.Close()

    End If
    End While
    Finally
    myReader.Close()
    myConnection.Close()
    End Try

    Sono riuscito ma in questo modo il file viene scritto localmente!

    2 DOMANDA: C' E' MODO DI VISUALIZZARE IL FILE PDF LETTO DAL CAMPO BLOB, SENZA DOVER SCRIVERE IL FILE LOCALMENTE/IN RETE?

    grazie mille a chi mi riuscirą ad aiutare!
  2. #2
  3. No Profile Picture
    Grumpier old Moderator
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jun 2003
    Posts
    14,453
    Rep Power
    4539
    Topic closed. Please re-post your question in English, thanks.
    ======
    Doug G
    ======
    Bartender to Rene Descartes "have another beer?" Descartes: "I think not" and he vanished.
    --Alfred Bester

IMN logo majestic logo threadwatch logo seochat tools logo