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

Accès aux données Discussion :

CAST Smallint en MYsql


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut CAST Smallint en MYsql
    Bonjour

    Désolé j'ai déja posté en MySql mais comme ca touche aussi .NET je poste aussi ici

    J'ai un probleme de CAST de smallint

    Je fais un query qui recupere des smallint dans une datatable
    Ensuite je fais un total dans la datatable
    Mais comme le total depasse la valeur d'un smallint, je ramasse une exception

    Solution envisagée
    1- Changer le type de la datatable : pas possible
    2- Changer le type avec un CAST dans le select

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select
    CAST(a.monsmallInt as INTEGER)
    from a
    Mais ca marche pas

    J'ai trouvé une solution crapuleuse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select
    ((a.monsmallInt) *1000) / 1000 as monsmallInt
    from a

    C'est tres amusant ca marche

    Mais pourquoi le cast ne marche pas ?
    Si MySql est capable de faire ca il devrait quand meme pouvoir faire un CAST

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    je comprends pas bien...
    c'est quoi le type de la colonne dans le datatable ?
    et si tu fais la requête "manuellement" avec ExecuteReader, tu récupères quoi comme type ?

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    La datatable prends son schema directement du datadapter qui a fait le query
    le type DB etant smallint je vais donc avoir un type int16 dans ma datatable
    A ce stade je peux plus changer sauf en faisant des operation grotesque de copie de data

    Le type int16 ne m'arrange pas car je vais faire une somme que j'aimerais mettre en derniere ligne : la somme déapassant le int16 ca coince

    Donc j'essaye de changer le type lors du query en faisant un CAST dans la requete sql

    Malheureusement MySql ne veut pas de mon cast
    Alors je bidouille

    Mais je n'ai peut etre pas bien compris ta question ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    tu pourrais peut-être renseigner d'abord le schema de la DataTable avec DbDataAdapter.FillSchema, modifier le type de la colonne, puis enfin faire le Fill ? je suis pas trop sûr que ce soit faisable, c'est juste une idée comme ça...

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Pas idiot !

    Je vais essayer,

    Meme si dans mon cas ca va pas etre facile a mettre en oeuvre sans tout casser !


    Confirmation : ca a l'air de marcher

    Mais comme je veux pas tout casser tout de suite je vais quand meme encore essayer de comprendre pourquoi le cast ne marche pas

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    J'ai été un peu plus loin

    Ca marche +/-
    Mais le comportement est un peu plus bizare et je dois contourner quelques exceptions inatendues !

    A mon avis il y a des collisions entre le Fillschema et le fill des data

Discussions similaires

  1. Cast d'un string en date pour MySQL 4.0.21
    Par nander dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/06/2010, 17h05
  2. Syntaxe du CAST mysql
    Par olibara dans le forum Langage SQL
    Réponses: 0
    Dernier message: 18/08/2008, 15h39
  3. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

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