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 :

[ADO] Enregistrer et reproduire un type BLOB sous Delphi


Sujet :

Bases de données Delphi

  1. #1
    Lucas Panny
    Invité(e)
    Par défaut [ADO] Enregistrer et reproduire un type BLOB sous Delphi
    Bonjour,

    Ce que je cherche c'est une sorte de "Hello World" en manipulation de blob sous ADO/OLEDB avec Delphi 7.
    Il semble qu'aucun article n'est encore disponible sur ça sur developpez.com !!

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Déjà tu peux regarder cette QR de la
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Lucas Panny
    Invité(e)
    Par défaut
    Merci pour ce lien, je vais l'essayer avec Oracle
    Sauf si vous avez une remarque sur l'utilisation de Oracle blob avec Delphi car on peut s'attendre à tout avec ce sgbd !!

  4. #4
    Lucas Panny
    Invité(e)
    Par défaut
    Ça ne marche pas, j'ai l'erreur suivant : Ce type de données n'est pas prise en charge
    Voici ma chaine de connexion : Provider=MSDAORA.1;Password=;User ID=sys;Data Source=base2;Persist Security Info=True
    J'arrive à me connecter avec et même à afficher la table dans un DBGrid mais lorsque je tente qlq chose sur un blob, paf !!!

  5. #5
    Lucas Panny
    Invité(e)
    Par défaut
    La réponse est un peu introduite dans mon autre fil : http://www.developpez.net/forums/sho...d.php?t=528625 qui prétend que le provider fourni par Ms ne supporte pas le type BLOB (http://support.microsoft.com/kb/244661/fr)!!

    Mais je me demande jusqu'à quelle version ? Est-ce que c'est résolu maintenant ?

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Mais je me demande jusqu'à quelle version ? Est-ce que c'est résolu maintenant ?
    Ben j'avais fait le teste avec Oracle 10g et le dernier MDAC de microsoft qui gère SQL 2005.
    Donc pour moi ce sont les derniers.

    Pour ce qui concerne la manipulation des LOB, si tes données ne sont pas trop volumineuses (tu peux te permettre de tout charger en mémoire directement), tu peux manipuler les LOB comme des champs ordinaires :
    Tu peux les lire/ecrire avec Field.AsString ou simplement Field.Value, le composant TBlobField appellera CreateBlobStream automatiquement pour sa gestion interne.

  7. #7
    Lucas Panny
    Invité(e)
    Par défaut
    C'est le SELECT même d'un champ de type BLOB qui ne marche pas : 'Ce type de données n'est pas prise en charge'

    Citation Envoyé par SORIANO
    Tu peux les lire/ecrire avec Field.AsString ou simplement Field.Value, le composant TBlobField appellera CreateBlobStream automatiquement pour sa gestion interne.
    Peut-être que je ne comprends pas ton approche mais TADOTable n'est pas utilisable pour moi car il y a cette exception !!

    Si on prend l'exemple de la FAQ : http://delphi.developpez.com/faq/?pa...ichierdansblob
    Que faire avec votre technique ?

  8. #8
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Peut-être que je ne comprends pas ton approche mais TADOTable n'est pas utilisable pour moi car il y a cette exception !!
    Je croyais que tu avais résolu le problème en utilisant le provider d'Oracle et pas celui de Microsoft.
    Avec celui de microsoft, comme tu l'as toi même trouvé dans le support microsoft, tu ne peux pas accéder à un champ LOB. Quoi que tu fasses dans tes composants db.

    Microsoft ne sait pas lire/ecrire des champs LOB (BLOB, CLOB...). Donc ADO ne pourra pas le faire tant que tu utiliseras le provider Microsoft.

    Si on prend l'exemple de la FAQ : http://delphi.developpez.com/faq/?pa...ichierdansblob
    Que faire avec votre technique ?
    Ma technique c'est pour manipuler directement le contenu du champ, surtout pour les champs CLOB.
    Les exemples de la FAQ montrent comment charger un fichier dans le champ LOB.
    Ce sont des besoins différents. Si tu as besoin de charger un fichier, il vaut mieux suivre l'exemple de la FAQ.

  9. #9
    Lucas Panny
    Invité(e)
    Par défaut
    En effet, ça marche avec le provider d'Oracle mais ce dernier manque encore de fonctionnalités en certains points mais bon ...
    si celui de Microsoft ne supporte pas les BLOB, il ne sert à rien !!!

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/01/2014, 15h20
  2. [ADO] Problème d'obtention de la taille du type BLOB dans un programme
    Par randriano dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 07/04/2008, 08h18
  3. [Oracle] Enregistrer fichier dans un champs de type BLOB
    Par madevilts dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/01/2008, 08h46
  4. ADO : Either BOF or EOF is true ... sous Delphi 7 !
    Par seb83 dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2005, 14h31
  5. Comment Enregistrer un champ type BLOB avec Query ???
    Par baba dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/01/2005, 20h33

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