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 :

trier un champ calculé dans une dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut trier un champ calculé dans une dbgrid
    Bonjour,
    Je souhaiterais savoir s'il est possible de trier un champ calculé dans une dbgrid.
    J'utilise Firebird (un dbgrid lié à un Datasource lui-même lié à un IBdataset )
    A l'évènement ontitleclik du dbgrid j'ai associé la procédure :
    ...
    ibdataset.selectSQL.add('select * from PROP order by '+column.FieldName);
    ...
    Bien entendu lorsque c'est la colonne correspondant au champ calculé qui est cliquée, cela ne fonctionne pas.
    Merci de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Je n'apporte pas la réponse car je n'utilise pas firebird ,
    Mais, sans doute, tu y gagnerai en decouplant le calcul de tes champs au niveau de la base par SQL (en proc stock) et trier tes données par des requêtes ORDER BY. C'est plus souple, mais peut être pas plus rapide (on charge la base, mais ça dépéend du calcul et du nombre d'enregistrements), plus modifiable au niveau maintenance de code. Il semble souvent que les champs calculès sont une facilité immédiate avec des problèmes exponentiels dès qu'il y'a des modifs de conceptions....

    Bon Code

  3. #3
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Si ton champ est calculé via SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       Select article, (qte_lig * prix_unitaire_lig ) montant
         from commande
    order by montant
    ne fonctionne pas Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       Select article, (qte_lig * prix_unitaire_lig ) montant
         from commande
    order by 2
    fonctionne bien.
    Sinon il faudra passer par un provider et un clientdataset.

Discussions similaires

  1. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 17h29
  2. Créer un champ calculé dans une table
    Par tigevellou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/04/2006, 16h08
  3. Champ calculé dans une requête
    Par HUÏEZ Fabienne dans le forum Access
    Réponses: 3
    Dernier message: 08/12/2005, 13h31
  4. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 15h57
  5. Paradox 7 Comment trier et marquer données dans une DBgrid
    Par technico dans le forum Bases de données
    Réponses: 12
    Dernier message: 04/07/2004, 12h08

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