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

WinDev Discussion :

[PostgreSQL] [AccèsNatif] Mémo binaires [WD17]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut [PostgreSQL] [AccèsNatif] Mémo binaires
    Bonjour,

    J'ai un problème que j'ai du mal à m'expliquer avec les fonctions HAttacheMémo et HExtraitMémo avec PostgreSQL. Ces deux fonctions ont l'air de fonctionner correctement mais lorsque j'utilise la fonction HExtraitMémo le contenu en retour est au format Héxadécimal.

    Exemple simplifié :
    J'enregistre un fichier texte qui contient "123", en retour dans mon fichier texte j'ai la valeur 'x313233'.

    Pour y remédier je dois donc faire la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI HExtraitMémo ( TEST_BINAIRE, MonBinaire, sMonResultat ) ALORS
        sContenuHexa = fChargeTexte ( sMonResultat ) [[ 2 A ]]
        sContenu = HexaVersBuffer ( sContenuHexa )
    FIN
    Ma question est de savoir si une telle démarche vous parait normal où est-ce que quelque chose m'aurait échappé ? Ce qui me gène aussi c'est qu'actuellement je suis en version 16 et que la fonction HexaVersBuffer n'existe que depuis la 17.

    Ce qui me surprend c'est qu'avec MySql je ne rencontre pas ce problème, je ne suis quand même pas le premier à faire ce genre de traitement avec PostgreSQL, ce n'est pas un bug ?

    Dernières précisions, ma base de donnée a été créée avec pgadmin avec les paramètres par défaut donc avec un codage UTF8, et la connexion depuis windev est celle par défaut sans information étendues donc théoriquement compatible avec le codage UTF8.

    Merci pour les précisions que vous pourriez m'apporter à ce sujet ...

  2. #2
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 593
    Par défaut
    As-tu regardé dans la doc de postgresql ? Je ne connais pas du tout, mais n'y aurait-il pas un paramètre qui fait que les champs bianires sont stockés en hexa ?

    Sinon, dans l'analyse windev et l'aide de l'accès natif ?

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    As-tu regardé dans la doc de postgresql ? Je ne connais pas du tout, mais n'y aurait-il pas un paramètre qui fait que les champs bianires sont stockés en hexa ?
    Je dois dire que je n'ai pas approfondie la documentation de postgresql mais même si elle indiquait une telle chose, ne serait-ce pas à l'accès natif de gérer cette contrainte. C'est dommage qu'on ait pas un retour d'expérience à ce niveau et je pense que je vais finir par envoyer un requête au ST.

    Sinon, dans l'analyse windev et l'aide de l'accès natif ?
    Elle par contre je l'ai lu en long et en large, elle n'indique rien du tout. Pour l'analyse j'ai essayé pas mal de choses et ça n'a rien donné de probant.

  4. #4
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Emmanuel,

    Voilà ce que je te propose :
    Scénario 1 :
    - insertion d'une ligne avec ton prog WinDev dans ta table PG
    - lecture de la ligne avec un explorateur de bases de données PG

    Que donne la donnée ? elle est au format héxa ou normal ?

    Scénario 2 :
    - insertion d'une ligne avec un explorateur de bases de données PG
    - lecture de la ligne avec ton prog WinDev
    - lecture avec un autre explorateur de bases de données PG

    Que donnent les lectures ?

    Si les deux OK c'est un pb accès natif en insertion. Si seule la lecture tierce est OK c'est que l'accès natif "transforme" ton champ ...

    Emmanuel

  5. #5
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    732
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 732
    Par défaut
    Bonjour,

    On dirait que vous essayez de lire un mémo binaire comme un mémo texte.
    Vérifiez dans INFORMATION_SCHEMA.COLUMNS que le type de la colonne est de type TEXT ou NTEXT et pas IMAGE.
    (NB. je ne connais pas du tout PostgreSQL, mais je regarderais d'abord ça sous SQL Server)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'LaTable' AND COLUMN_NAME = 'LaColonne'
    Vérifiez aussi le type de la rubrique dans l'analyse, pour savoir aussi quel son de cloche a WinDev.

    PS. Je viens de réaliser que dans le titre de votre message vous parlez de mémo binaire. Dans ce cas il faut le type IMAGE dans la base et mémo binaire dans l'analyse.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Bonjour,

    Citation Envoyé par Hibernatus34 Voir le message
    On dirait que vous essayez de lire un mémo binaire comme un mémo texte.
    Le texte c'était pour simplifier l'exemple mais c'est bien sur un mémo binaire que je veux travailler. J'y stocke des PDF ou des Images par exemple et depuis que j'applique la conversion Hexa, ces types de fichiers sont correctement reconnus alors que sans conversion ce n'était pas le cas.

    Je vous remercie tous pour vos suggestions, fin de la semaine dernière j'ai envoyé une requête au ST, je vous tiendrai au courant dès qu'ils m'auront répondu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/12/2011, 10h17
  2. Installer PostgreSql à partir des binaires sous windows 7
    Par gfrerot dans le forum Installation
    Réponses: 2
    Dernier message: 17/12/2011, 18h51
  3. [PostgreSQL] [PostGreSQL] Comment uploader un fichier dans une champ binaire ?
    Par Ekimasu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/06/2008, 15h39
  4. [Kylix] PostgreSql via ODBC
    Par doykati dans le forum EDI
    Réponses: 3
    Dernier message: 08/02/2007, 10h10
  5. Réponses: 2
    Dernier message: 30/05/2002, 08h54

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