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

Bases de données Delphi Discussion :

SQLite+Firedac, problème avec des strings !


Sujet :

Bases de données Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut SQLite+Firedac, problème avec des strings !
    Bonjour,

    je commence à utiliser SQLite pour des tables de travail et là je tombe sur un os

    j'ai une table contenant un code alphanumérique (CHAR(5)) le problème c'est qu'à l'affichage de code tels que 00125 il m'affiche 125 !
    aussi bien sur un TDBEdit, une TDBGrid etc... et pourtant mon champ est bien un TWideString de longueur 5

    C'est certainement un truc idiot, mais je bloque (et évidemment c'est urgent )

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut méa-culpa
    Résolu, en changeant le type de colonne de la table avant : STRING(5) maintenant TEXT(5)

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 710
    Points : 25 593
    Points
    25 593
    Par défaut
    CHAR(5), STRING(5) et TEXT(5), il y a quoi être confus !
    Surtout si CHAR(5) se comporte comme un NUMBER(5)

    on a dû récemment passer un CHAR(3) vers un CHAR(4) en ORACLE
    Par contre pas de recodage forcé, la colonne contient toujours 000 et quand on arrivera à 999 on passera à 1000, pas de ZEROFILL
    C'est dans une DB ORACLE 900 tables rien que dans le schéma principal et il y a 40 schémas sur l'EXADATA
    Environ mille champ à changer et les DFM avec ces pénibles champs persistants.

    Je l'avais aussi vécu en MySQL CHAR(4) vers un VARCHAR(6) sauf que l'on forçait un stockage de la forme 000000 (comme toi)
    Sauf qu'un jour chez un client, un vieux serveur applicatif a été redémarré et il pointait sur le nouveau serveur DB
    L'application utilisant un XML pour gérer la structure de la DB a provoqué un retour de 00xxxx à 00xx, la cata 000100, 000101, 000102, tout est passé en 0001
    Heureusement, un backup du client datait de la veille !
    Depuis la mise à jour automatique a été sécurisé et limité à des utilisateurs privilégiés et aussi j'ai changé de société 2 fois depuis

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par SergioMaster Voir le message
    je commence à utiliser SQLite pour des tables de travail et là je tombe sur un os

    j'ai une table contenant un code alphanumérique (CHAR(5)) le problème c'est qu'à l'affichage de code tels que 00125 il m'affiche 125 !
    aussi bien sur un TDBEdit, une TDBGrid etc... et pourtant mon champ est bien un TWideString de longueur 5

    C'est certainement un truc idiot, mais je bloque (et évidemment c'est urgent )
    Je pense que cela vient de la manière dont SQLite traite les données stockées en réalisant un typage dynamique entre autres.
    Tout est la en anglais :
    https://www.sqlite.org/faq.html#q3
    https://www.sqlite.org/datatype3.html#affinity

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

Discussions similaires

  1. Problème avec des tableaux de string
    Par Electroniktor dans le forum C++
    Réponses: 2
    Dernier message: 15/03/2008, 16h29
  2. [XSLT]Problème sur une comparaison if avec des strings
    Par LoDev dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 18/01/2008, 10h27
  3. [C++/CLI] Problème avec des String^
    Par Kansuu dans le forum Windows
    Réponses: 1
    Dernier message: 02/08/2007, 10h25
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 14h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 17h26

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