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

QuickReport Discussion :

Delphi XE6, champs persistants TSingleField et Quickreport


Sujet :

QuickReport

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Points
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 56
    Par défaut Delphi XE6, champs persistants TSingleField et Quickreport
    Bonjour
    Voici le (petit) problème auquel je suis confronté
    Je développe une application de gestion en Delphi XE6 utilisant Firedac et Interbase 6.5.

    Suite à la migration d'Interbase 6.5 en Firebird 2.5 (SQLDialect 3, CharacterSet WIN1252), j'ai été obligé de repasser sur tous les champs persistants des TFDQuery afin de changer le type du champ :
    - TFloatField en TSingleField (si le champ en question n'est ni un champ calculé ni un champ résultant d'une opération effectuée en SQL)
    - TInteger en TLargeInt (si le champ en question est un champ résultant d'une opération effectuée en SQL)
    - TDateTime en TSQLTimeStamp (dans tous les cas)
    Si le changement est long et fastidieux, cela marche très bien.

    Ce changement a également été effectué sur les reports QuickReport (plus de 200 états). El là surprise !!!
    Le type TSingleField n'est pas reconnu par QuickReport 5.06 dans expressions.
    Seule astuce trouvée : effectuée une opération en SQL du type SELECT (MTT * 1) as MTT .... pour conserver la comptabilité avec QR.

    Est ce que quelqu'un aurait rencontré ce problème et éventuellement trouver une autre solution "plus propre" ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 408
    Points
    42 016
    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 408
    Points : 42 016
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    N'ayant pas/plus Quickreport, c'est surtout la partie migration qui m'intéresse : la partie FireDac
    Je n'avais pas fait attention aux champs dates déclarés TSQLTimeStamp par FireDac jusqu'à ce que je lise ce message
    AMHA il aurait été plus simple (je n'ai fait le test que sur la Date et avec Berlin je n'ai pas XE6) de définir des règles de mappage de données (partie options de la connexion ou propriété FormatOptions.MapRules)
    dtDateTimeStamp -> dtDateTime donnera au déclaration de champs un TDateTime "classique"
    je n'ai pas assez d'info pour suggérer les autres
    j'ai essayé sur mes propres bases de données les régles
    dtBCD -> dtDouble
    dtfmtBCD -> dtDouble
    pour obtenir directement un TFloatField sans succés, il doit me manquer quelque chose à propos du BCD
    Regarder l'étape 6 de Migration d'application BDE
    pourrais-tu fournir une structure de table et query ?
    [Edit] je viens de voir que l'on pouvait faire cela non pas au niveau de la connexion mais aussi au niveau de la Query ou de la table et sur une Colonne ou un Type de données défini en particulier
    reste que je n'ai toujours pas réussi à obtenir mon tfmtBCD en TFloatField mais cela doit être dans le domaine du possible (du moins sur le papier)
    [Edit bis]
    Nouvelle application, même table (sans les tâtonnements qui auraient pu être mémorisé) mais aussi avec Seattle (au cas où) et, ça y est j'ai bien mon TDateTime et mon TFloatField (et ce juste pours la colonne que je veux). Je pense que la solution "propre" passe par là

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/05/2014, 17h14
  2. champ persistant et bde
    Par pierrot67 dans le forum Débuter
    Réponses: 2
    Dernier message: 05/02/2014, 18h33
  3. Créer des champs persistants
    Par looping dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/11/2008, 12h12
  4. ibQuery et champ persistant
    Par looping dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/06/2008, 09h41
  5. Filtre sur champ persistant
    Par codial dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/12/2006, 19h55

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