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

PHP & Base de données Discussion :

mssql_fetch_array : limitation de la taille de chaine de caratère? [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut mssql_fetch_array : limitation de la taille de chaine de caratère?
    Bonjour,

    Je rencontre actuellement un petit soucis d'affichage d'élément de ma base de donnée.

    Il semble que les informations soient tronquées quand je les récupères depuis ma base de donnée pour un affichage via php. J'ai donc vérifié si les données étaient correctement stockées dans la base et si ma procédure stockées, qui les récupère, renvoyait les informations correctement. Il ne semble pas y avoir de problème de ce côté.

    Coté php voici le code que j'utilise pour traiter les informations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //////////////////////////////////////////////////////////////////////////////////////////////
    //requete d'affichage des informations du bon peinture à valider
    $tableau_bon=array();
     
    // connexion à la base mssql => $connexion_base = identifiant de lien MS SQL
    $connexion_base=mssql_connect($sql_serveur,$sql_user,$sql_passwd) 
    or die ("impossible de se connecter à SQL Server sur $sql_serveur");
     
    mssql_select_db ($sql_table,$connexion_base)
    or die("erreur de connection à la base de données $bdd");
     
    $result=mssql_query("exec ".$serveur."_PS_Select_infos_bon_peinture_demandeur_fct_id_bon_peinture '$num_bon'",$connexion_base)or die ("erreur de requete");
     
    while($val=mssql_fetch_array($result,MSSQL_ASSOC))
    {
    $tableau_bon[]=$val;
    }
     
    echo'<br />';
    print_r($tableau_bon);
    echo'<br />';
    Lorsque j'effectue le "print_r($tableau_bon);" je me rend compte qu'il manque des données.

    Je me pose la question de savoir si il existe une limite pour la taille des chaines de caractère que peut traiter mssql_fetch_array($result,MSSQL_ASSOC) ? Et surtout quel est la démarche à utiliser pour gérer des chaines de caractère plus importante.

    A moins que le problème vienne d'un autre élément.

    Si qqn à une idée je suis preneur.

    Je vais continuer à chercher une solution.

    ++

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    plop plop

    je viens de trouver un élément de réponse ici :

    http://www.developpez.net/forums/d20...ltats-requete/

    J'attends l'admin pour faire la manipe et je vous tiens au courant

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    plop plop

    Bon on vient de regarder l'astuce :

    http://www.ericmery.fr/blog/php-recu...avers-freetds/

    La valeur était bien la valeur par défaut.

    Par contre en regardant le log de freetds on remarque que la chaine de caractère renvoyée est déjà tronquée.

    Vais tester l'autre astuce en castant les varchar en text dans la requête

    ++

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour,

    bon bah problème résolu. Il semble qu'en remplaçant le type varchar(5000) par un type text, mes champs textes ne sont plus tronqués.

    Voili voilou

    ++ all

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour,

    Je reviens sur ce Post par rapport à l'utilisation des champs texts :

    En effet on peut lire ici :

    Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez les types de données varchar(max), nvarchar(max) et varbinary(max) à la place. Pour plus d'informations, consultez Utilisation de types de données de valeur élevée.
    J'ai donc testé le Cast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST ([observation_demandeur] as TEXT)observation_demandeur,
    Cela semble fonctionner.

    ++

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

Discussions similaires

  1. [WCF] Limitation dans la taille des objets
    Par dev01 dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 30/08/2012, 08h18
  2. [Divers] Limitation de la taille des lignes
    Par apqmwnqmap dans le forum Cobol
    Réponses: 13
    Dernier message: 18/12/2007, 10h16
  3. Taille max. chaine dans URL ?
    Par Thomad dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2006, 20h04
  4. [SQL*Loader] Taille de chaines
    Par nickkian dans le forum Oracle
    Réponses: 8
    Dernier message: 29/04/2006, 18h04
  5. Taille de chaines de caractere et \0
    Par KORTA dans le forum C
    Réponses: 16
    Dernier message: 05/09/2003, 09h28

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