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 6 et antérieur Discussion :

[VB6] Copier un champ BLOB vers un autre champ BLOB


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Par défaut [VB6] Copier un champ BLOB vers un autre champ BLOB
    Bonjour Old VB6 world,
    Je suis en train de maintenir une vielle application en VB6.
    Je dois dans cette application (client lourd avec Oracle 9i mais client 11g) copier un champ de type blob vers un champ de type blob. Pour cela j'ai codé la méthode FieldToField :

    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
    Public Sub Field2Field(ByRef fldSource As ADODB.Field, ByRef fldDestination As ADODB.Field, ItemJauge As BoWSmartUI.SmartItem)
     
        Dim conChunkSize As Long
        Dim st As ADODB.Stream
        Dim lngOffset As Long
        Dim lngTotalSize As Long
        Dim strChunk() As Byte
     
        On Error GoTo ErrHandler
        Screen.MousePointer = vbHourglass
        Set st = New ADODB.Stream
        st.Type = adTypeBinary
        st.Open
        st.Write fldSource
        fldDestination.Value = st.Read
        st.Close
        Screen.MousePointer = vbDefault
        Exit Sub
    ErrHandler:
        MsgBox ("The copy of the attachment file failed")
        Screen.MousePointer = vbDefault
    End Sub
    Le problème est que après la ligne st.close, fldDestination est null, alors que fldSource n'est pas null. Et la copie ne se fait pas.
    Est-ce bien le bon algorithme ?

    Merci de vos réponses.

  2. #2
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Par défaut
    Pour comprendre le problème, maintenant résolu.
    Il s'agit d'un défaut de l'ADODB.Stream, voir https://support2.microsoft.com/defau...b;en-us;826756

    Il suffit de lire le champ source par tranche de 20 Mo.

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

Discussions similaires

  1. Copier les données d'un champs vers un autre champs
    Par Waumy dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/11/2008, 04h58
  2. Copier un fichier PDF vers un autre PDF
    Par heraldys dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 09/02/2008, 01h43
  3. cherche comment copier le champ vers une autre champ
    Par khier dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/07/2005, 12h20
  4. Copier d'une table vers une autre
    Par ph4prod dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/09/2004, 12h42
  5. [access] champs type text sur un pc blob sur un autre
    Par Harry dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/07/2004, 09h30

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