IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Sauvegarder un PDF dans un blob Oracle


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Sauvegarder un PDF dans un blob Oracle
    bonjour,
    je soubhaite créer un code me permettant de sauvegarder un fichier PDF dans un champ BLOB d'une table Oracle.
    Après diverses recherches, j'ai créé un code, qui, techniquement fonctionne, mais au final ne fait rien ... ... je ne recupere meme pas l'erreur Oracle dans le Catch ... Dois je faire un commit ?
    Merci de votre aide


    J'utilise ce code dans un élément Script Task d'un flux SSIS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Imports System
    Imports System.Data
    Imports System.Math
    Imports Microsoft.SqlServer.Dts.Runtime
    Imports Oracle.DataAccess.Client
    Imports Oracle.DataAccess.Types
     
            Dim con As New OleDb.OleDbConnection
            Dim comm As New OleDb.OleDbCommand
            Dim Sql As String
     
            con.ConnectionString = "Data Source=BASEORACLE;User ID=SCHEMA;Password=SCHEMA;Provider=MSDAORA.1;Persist Security Info=True;"
            con.Open()
     
     
            Dim fs As New IO.FileStream("E:\TEST.pdf", IO.FileMode.OpenOrCreate, IO.FileAccess.Read)
            Dim MyData(CInt(fs.Length)) As Byte
            fs.Read(MyData, 0, CInt(fs.Length))
            fs.Close()
     
            Sql = "insert into T_IMG (NAME,CREA,DATA_BLOB) values (TEST','14/04/2014',:BlobParameter)"
            Dim Blobparameter As OleDb.OleDbParameter = New OleDb.OleDbParameter
            Blobparameter.OleDbType = OleDb.OleDbType.LongVarBinary
            Blobparameter.ParameterName = "BlobParameter"
            Blobparameter.Value = MyData
     
            Try
                comm = New OleDb.OleDbCommand(Sql, con)
                comm.Parameters.Add(Blobparameter)
                comm.CommandType = CommandType.Text
                comm.ExecuteNonQuery()
            Catch Ex As Exception
                MsgBox (Ex)
            End Try
     
     
            fs = Nothing
            con.Close()
            con = Nothing

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bien que je n'ai pas eu de réponses, j'ai trouvé la solution que je partage avec vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
            Imports Oracle.DataAccess.Client
    		Imports Oracle.DataAccess.Types
    		%ajouter la référence System.Data.OracleClient
     
    		Dim OracleCon As New OracleConnection
            Dim OracleComm As New OracleCommand
            Dim Sql As String
            Dim Path As String
     
            Dim Dates As String = Format(Date.Now, "dd MMMM yyyy")
     
            Path = "E:\Test\test.pdf"
     
            Dim fs As New IO.FileStream(Path, IO.FileMode.OpenOrCreate, IO.FileAccess.Read)
            Dim MyData(CInt(fs.Length)) As Byte
            fs.Read(MyData, 0, CInt(fs.Length))
            fs.Close()
     
            OracleCon.ConnectionString = "Data Source=BASE;User ID=USR;Password=PWD;Unicode=True"
            Sql = "insert into TABLE (CHP1,CHP2,CHP3,CHP4,DATA_BLOB) values (NomFichier,Date,PDF,0,:BLOBFILE)"
            OracleComm.CommandText = Sql
            OracleComm.Connection = OracleCon
            OracleComm.Parameters.Add("BLOBFILE", OracleType.Blob).Value = MyData
            OracleCon.Open()
            Dim blobTransaction As OracleTransaction = OracleComm.Connection.BeginTransaction
            OracleComm.Transaction = blobTransaction
     
            Try
                Dim inc As Integer = OracleComm.ExecuteNonQuery
                blobTransaction.Commit()
     
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            End Try
     
            MyData = Nothing
            fs.Close()
            fs.Dispose()
            OracleComm.Dispose()
            OracleCon.Close()
            OracleCon.Dispose()

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par BenMarcel Voir le message
    Bien que je n'ai pas eu de réponses, j'ai trouvé la solution que je partage avec vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
            Imports Oracle.DataAccess.Client
    		Imports Oracle.DataAccess.Types
    		%ajouter la référence System.Data.OracleClient
     
    		Dim OracleCon As New OracleConnection
            Dim OracleComm As New OracleCommand
            Dim Sql As String
            Dim Path As String
     
            Dim Dates As String = Format(Date.Now, "dd MMMM yyyy")
     
            Path = "E:\Test\test.pdf"
     
            Dim fs As New IO.FileStream(Path, IO.FileMode.OpenOrCreate, IO.FileAccess.Read)
            Dim MyData(CInt(fs.Length)) As Byte
            fs.Read(MyData, 0, CInt(fs.Length))
            fs.Close()
     
            OracleCon.ConnectionString = "Data Source=BASE;User ID=USR;Password=PWD;Unicode=True"
            Sql = "insert into TABLE (CHP1,CHP2,CHP3,CHP4,DATA_BLOB) values (NomFichier,Date,PDF,0,:BLOBFILE)"
            OracleComm.CommandText = Sql
            OracleComm.Connection = OracleCon
            OracleComm.Parameters.Add("BLOBFILE", OracleType.Blob).Value = MyData
            OracleCon.Open()
            Dim blobTransaction As OracleTransaction = OracleComm.Connection.BeginTransaction
            OracleComm.Transaction = blobTransaction
     
            Try
                Dim inc As Integer = OracleComm.ExecuteNonQuery
                blobTransaction.Commit()
     
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            End Try
     
            MyData = Nothing
            fs.Close()
            fs.Dispose()
            OracleComm.Dispose()
            OracleCon.Close()
            OracleCon.Dispose()

    Merci beaucoup pour le retour, ça pourrait me servir prochainement !
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Merci beaucoup pour le retour, ça pourrait me servir prochainement !
    N'hésites pas à me contacter en cas de problème ... J'y ai mis le temps mais ça fonctionne
    A ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/07/2011, 10h23
  2. Enregister un ficher PDF dans une base Oracle
    Par walidinfo dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 29/11/2010, 16h35
  3. Upload de fichier dans un blob oracle
    Par ndundux dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/02/2009, 09h46
  4. Comment sauvegarder une JpegImage dans un BLOB de IB ?
    Par colorid dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/02/2008, 19h47
  5. Insertion des fichiers pdf dans une base oracle
    Par arezki76 dans le forum SQL
    Réponses: 2
    Dernier message: 20/07/2007, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo