1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    mai 2004
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 946
    Points : 480
    Points
    480

    Par défaut Problème de requêtage des champs LVARCHAR

    Bonjour,

    je développe un logiciel fait en Delphi XE2 qui se connecte à des bases de données dont parfois Informix.
    J'ai un soucis quand je dois requêter une table possédant des champs du type LVARCHAR.

    Si je fais un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MON_CHAMP FROM MA_TABLE
    , j'obtiens le message d'erreur
    Unknown error message 0.
    J'ai essayé en faisant différents CAST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(MON_CHAMP AS VARCHAR(255)) FROM MA_TABLE
    , la requête s'ouvre mais je n'obtiens que les 255 premiers caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(MON_CHAMP AS VARCHAR(256)) FROM MA_TABLE
    , j'obtiens le message d'erreur
    Maximum varchar size has been exceeded.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(MON_CHAMP AS TEXT) FROM MA_TABLE
    , j'obtiens le message d'erreur
    No cast from lvarchar to text.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(MON_CHAMP AS CLOB) FROM MA_TABLE
    , j'obtiens le message d'erreur
    User Defined Routine error.
    Je ne suis pas spécialiste d'informix, je n'ai plus d'idées et je ne vois pas comment arriver à remonter les valeurs du champs sans qu'elles ne soient tronquées.

    Merci par avance pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 105
    Points : 162
    Points
    162

    Par défaut

    Bonjour,

    le type VARCHAR a une longeur max de 255, tu ne pourras jamais récupérer plus que 255 caractères.
    VARCHAR(256) est impossible pour cette même raison

    caster vers type TEXT ou CLOB ne sera pas possible non plus car les types sont totalement incompatibles, du à une structure qui n'a rien à voir.

    Vu l'erreur 0, j'aurais tendance à dire que le client ne comprend pas le type LVARCHAR, soit du à Delphi lui-même, soit du au driver ODBC installé.

    Il conviendrait donc de vérifier:
    1) La version du moteur Informix ( onstat -V à partir du serveur )
    2) La version du driver ODBC ( lancer setnet32 à partir du PC, onglet 'about' )
    3) Tester la même requête à partir de dbaccess sur le serveur, ou demander au DBA de le faire
    4) Tester tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(MON_CHAMP AS LVARCHAR(longueur)) FROM MA_TABLE
    A partir de là on verra ce qu'il est possible de faire.

    Tu n'aurais pas ce genre de problèmes en créant et utilisant une collection NoSQL, qui est totalement agnostique en termes de types de données :-)
    Dispo à partir de la version IBM Informix 12.10 xC3

  3. #3
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    mai 2004
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 946
    Points : 480
    Points
    480

    Par défaut

    Salut,

    merci beaucoup pour tes réponses.

    Je n'ai malheureusement pas la main sur les types créés.

    A priori, le problème vient uniquement en connexion native à Informix et n'interviendrait pas en ODBC, je ne peux pas tester en ODBC et je n'ai pas de retour.

    Je marque donc en résolu pour l'instant et si j'ai encore des problèmes dessus je ferai les tests que tu proposes.

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

Discussions similaires

  1. Problème de requêtage des champs LVARCHAR sous Informix
    Par WebPac dans le forum Bases de données
    Réponses: 4
    Dernier message: 06/06/2014, 16h21
  2. [WD-2003] PUBLIPOSTAGE, Problème de déplacement des champs en mode publipostage
    Par Vin_SuFu_R@T dans le forum Word
    Réponses: 2
    Dernier message: 25/06/2010, 16h20
  3. problème au niveau des champs
    Par mmanta1 dans le forum IHM
    Réponses: 4
    Dernier message: 14/06/2007, 15h01
  4. Problème de parcours des champs dans l'ordre.
    Par jyms2006 dans le forum Access
    Réponses: 1
    Dernier message: 19/04/2006, 11h08
  5. Delphi - Base donnée Paradox, problème de nom des champs
    Par mjp dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2005, 21h10

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