none
comment récupérer du texte dans base de données

    Question

  • Bonjour,

    J'ai fais un module qui gére la récupération de données dans mes base de données.

    Pour les données de type chiffrées et string ca fonctionne très bien.

    En revanche j'ai ajouté dans une table une collonne texte et là probléme de retour de données:

    [quote]Il y a une erreur de connection (SQL_Reader) : Les types de donnée text, ntext et image ne peuvent pas être comparés ou classés, sauf lors de l'utilisation de l'opérateur LIKE ou IS NULL.[/quote]

    j'utilise cette méthode d'extraction:

    J'utilise un sqldatareader pour récupérer le résultat de requette.

    je lis les résultat d'une ligne de donnée en mettant chaque éléments dans une collection.

    La ligne finie, la collection est mise dans un arraylist.

    Ca passe à la ligne de donnée retournée suivante etc.

    mais apparemment lorsque la requette parvient au sqlreader il détecte une incompatibilité avec la zone texte.

    1/ Que dois-je utiliser à la place de mon sqldatareader?

    2/ la collection va-t-elle accepter que je lui injecte une zone texte?

    je n'ai pas trouvé les type de donnée qu'une collection accepte. Les chapitres sur les collections parle bien vite des arraylist mais ya pas grand chose sur les collections elles-même.

    3/ il doit y avoir moyen de détecter quelle type de données essaie de récupérer une requette. Mais lequel?

    car je suppose que je vais être confronté par la suite au même genre de problème avec des images...

    Merci de m'éclairer pour me mettre sur la voie.

    Friday, May 20, 2011 1:51 PM

Answers

  • d'ou l'erreur. Vous ne pouvez pas effectuer de Group By sur des champs de type text, ntext ou image. Tester votre requête directement sur la base si besoin.

    Cordialement

    • Marked as answer by dialAsp Friday, May 20, 2011 3:55 PM
    Friday, May 20, 2011 3:19 PM

All replies

  • Bonjour,

    le problème n'est peut être pas votre SqlDataReader, auriez vous un GROUP BY dans votre requête ?

    Cordialement

    Friday, May 20, 2011 2:59 PM
  • oui ma requète est de type:

    Select element1, element2 FROM table WHERE (condition1='valeur1') AND (condition2='valeur2') GROUP BY element1, element2.

    Friday, May 20, 2011 3:10 PM
  • d'ou l'erreur. Vous ne pouvez pas effectuer de Group By sur des champs de type text, ntext ou image. Tester votre requête directement sur la base si besoin.

    Cordialement

    • Marked as answer by dialAsp Friday, May 20, 2011 3:55 PM
    Friday, May 20, 2011 3:19 PM
  • je dois retourner mes colonne selon un certain ordre pourtant.

    Dois-je isoler la colonne texte sur une requete et les autre datas sur une seconde requete puis faire le mixe des arraylists ensuite?


    ou plutot, tout récupérer tel quel sans ordre puis remixer l'arraylist ensuite pour eviter 2 acces à la base au lieu d'un.

    Je vais tester, merci.

    Je reviendrais valider la réponse si ya pas d'autres message d'erreur.

    Merci

    • Edited by dialAsp Friday, May 20, 2011 3:28 PM 2eme idée meilleure
    Friday, May 20, 2011 3:22 PM
  • Quel version de SQL server utilisez-vous ?
     
    ntext et image sont marqués "deprecated" depuis la version 2005 (de mémoire)
    Utilisez nvarchar(MAX) ou varchar(MAX)
    ou varbinary(MAX) à la place.
     
    Le GROUP BY fonctionne sur du nvarchar(MAX) (testé sur la ver. 2008)
     
    --
     
    Fred
    foleide@free.fr
     
     
    Friday, May 20, 2011 3:33 PM
  • en espérant que cela réponde à votre question:

    SQL Server Configuration Manager

    Microsoft Corporation

    Version : 2007

    http://images.imagehotel.net/?1nq48qkxch.gif

    ca fonctionne avec texte. Merci quand même.

    :)

    • Edited by dialAsp Friday, May 20, 2011 4:16 PM add capture + outil dev
    Friday, May 20, 2011 4:09 PM