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

Outils MySQL Discussion :

Récupérer des données binaires d'un LONGTEXT vers une chaine de caractères


Sujet :

Outils MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Récupérer des données binaires d'un LONGTEXT vers une chaine de caractères
    Salut à tous,

    Voilà alors dans un programme en Delphi je stocke un chaine de caractères représentant des données binaire dans un LONGTEXT et mon problème survient lorsque je veux récupérer ces données : ma chaine est coupée dès que le caractère 0x00 arrive...
    J'ai pour le moment réussi à contourner le problème en utilisant la fonction HEX() pour lire mes donnée puis en convertissant logiciellement ma chaine hexadécimale en chaine de caratères...
    Celà a tendance à ralentir un peu mon soft, c'est la raison pour laquelle je fais appel à vous pour savoir s'il n'existerai pas un fonction mysql permetant de récupérer directement une chaine incluant des caractères nuls.

    Merci d'avance

    ++

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    pourquoi ne passes-tu pas ta colonne en LONGBLOB ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    J'ai déja essayé cette solution mais ça n'a rien donné...

    Peut être que le problème est plutôt du coté de mon soft ou de l'API Mysql plutôt que du coté de ma requette ou de mes tables ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    Avec MySQL 5 sous Windows XP, je n'ai pas de pb ni en LONGTEXT ni en LONGBLOB.

    Voici mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create table test (texte longtext, binaire longblob) ;
     
    insert into test 
    values (CONCAT('123', CHAR(0), '456'), CONCAT('123', CHAR(0), '456') ) ;
     
    select * from test ;
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Ca illustre parfaitement mon problème, avec ton exemple je récupère 123 et 123

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    moi je vois 123 456 et 123 456...

    Quelle est ta version de MySQL ? quel est ton OS ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Mysql 5.0 sous Windows XP. Je fais mes tests dans Mysql Query Browser.

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    QB est une grosse bouse. J'y obtiens 123 et (blob). Mon test d'au-dessus était fait avec le client texte.

    Ça me rassure pour les données !

    A titre de comparaison, j'ai 123(carré)456 et [BLOB - 7 Octets] avec phpMyAdmin et 123456 et (blob) avec Toad for MySQL.
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Oui je viens de me rendre compte que QB a ses limites, je viens refaire le test chez un hébergeur avec Mysql 5 et PhpmyAdmin et j'obtiens la même chose que toi...
    Néanmoins ça n'empeche pas que j'obtiens aussi 123 et 123 dans mon soft où dans ce cas mon lien avec la base de données est LibMysql.dll.

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    Si c'est du texte, remplace le caractère zéro par un autre que tu n'utilises pas, par ex. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select replace(binaire, char(0), '§' ) from test ;
    Mais si c'est vraiment des données binaires, j'imagine que tu as besoin des 256 valeurs...
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Malheureusement les données que j'ai à stocker sont du binaire pur donc rien à fait

    Je vais essayer de poser un message dans le coin 'Delphi et Bases de données' vu quele problème ne semble pas venir de Mysql.

    Merci pour votre aide !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/06/2008, 11h38
  2. Réponses: 1
    Dernier message: 08/01/2008, 14h20
  3. Réponses: 3
    Dernier message: 28/01/2007, 19h25
  4. Réponses: 3
    Dernier message: 11/01/2007, 21h18
  5. Réponses: 1
    Dernier message: 29/08/2006, 17h03

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