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

Bases de données Delphi Discussion :

[interbase] transferer un champ blob en par prog


Sujet :

Bases de données Delphi

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut [interbase] transferer un champ blob en par prog
    Bonjour,

    J'essaye de transferer le contenu d'un champ blob.
    Ce champ contient une photo au format JPG et est de type '0' (data).
    J'ai essayé ceci, pas d'erreurs mais le champ est vide à l'arrivé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dm2.Ibien018BI018PHO1.AsVariant := dm2.bien018INTERAGBI018PHO1.AsVariant;
    Vous avez une idée de comment je peux directement transferer les données des champs blob d'une table à une autre?

  2. #2
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Personne n'utilise la bdd pour ses photos?

  3. #3
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut Si moi
    donne moi le code complet que tu utilise

    et je pourrai t'aider

  4. #4
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Ul s'agit de la copie d'enregistrements d'une table à une autre, mon premier exemple résume assez bien la chose. Le principe c'est que je fais un insert sur la table cible puis je fais 'TableCible.Champ1.AsVariant := TableSource.Champ1.AsVariant' avec tous les champs à transférer. et au final je fais un post sur la table cible pour valider.

    (On peu aussi utiliser fieldbyname pour faire une boucle)

    Cette technique marche pour tous types de champs sauf les champs blob contenant du binaire (auquels on ne peut pas faire de 'AsString' et 'AsVariant' ne donne rien).
    Pour mes photos j'ai du les transférer temporairement sur le disque dur et les recharger (avec SaveToFile et LoadFromFile) dans le champ de la table cible... c un peu lourd mais ca marche.

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    AsVariant devrait en effet fonctionner...

    Mais moi j'aurai plutot essayé ceci pour les fields de type blob :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MS:TMemoryStream;
    begin
      MS :=TMemoryStream.Create;
      try
        dm2.Ibien018BI018PHO1.SaveToStream(MS);
        dm2.bien018INTERAGBI018PHO1.LoadFromStream(MS);
      finally
        MS.Free;
      end;
    end;
    En fait plutot que de sauver dans un fichier SaveToFile fait un SaveToStream et idem pour le LoadFromFile, utilise le LoadFromStream, ça sera bien plus performant...

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/09/2011, 10h33
  2. Inserer un champ BLOB par un ALTER TABLE
    Par freud dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2008, 14h53
  3. [Oracle] Ecriture dans champ BLOB de fichiers joints par formulaire
    Par mcshu dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/02/2007, 14h33
  4. Enregistrement d'image dans Interbase(champ Blob)
    Par the watcher dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/06/2005, 12h33
  5. Champ BLOB pour IMAGE format JPG and TImage et Interbase
    Par alain_bastien dans le forum InterBase
    Réponses: 1
    Dernier message: 20/10/2004, 16h15

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