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 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    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 )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut méa-culpa
    Résolu, en changeant le type de colonne de la table avant : STRING(5) maintenant TEXT(5)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    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 452
    Points : 24 863
    Points
    24 863
    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
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 784
    Points : 5 915
    Points
    5 915
    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
    Philippe.

+ 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, 15h29
  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, 09h27
  3. [C++/CLI] Problème avec des String^
    Par Kansuu dans le forum Windows
    Réponses: 1
    Dernier message: 02/08/2007, 09h25
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26

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