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

Delphi Discussion :

Flaguer des records dans un DataSet.


Sujet :

Delphi

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut Flaguer des records dans un DataSet.
    Bonjour tous le monde !

    Je suis face un problème tout à fait M..... c'est pourquoi j'aurais besoin de votre aide.

    J'aimerai pouvoir flaguer des record dans un DataSet.

    Je travail avec des composants MyStroredProc. Un DataSet qui récupère ses données depuis des procédures stockées MySQL (suite de composant MyDac).
    Donc chacun des champs de mon DataSet à une correspondance avec un des champ retourné par ma SP. Jusque là tout va bien.

    Mainteant j'aimerai ajouter dynamiquement un champ boolean à mon DataSet afin que les utilisateurs puissent simplement sélectionner (case à cocher depuis la DBGrid, voir dans la FAQ pour savoir comment on fait) certain record. Mais ce champ booléan n'a de raison d'être qu'en mémoire et surtout pas dans la base de donnée. Mais comme ce champ n'existe pas dans la base de données impossible de le créer. Il me dit qu'il ne trouve pas ce champ.

    Quelqu'un a-t-il un solution à ce problème ??

    En résumé c'est comme si j'avais un composant TADOTable et que j'aimerais ajouter un champ qui n'existe pas dans la base sur mon TADOTable.

    Merci d'avance à ceux qui prendront un peu de temps pour essayer de m'aider.
    @@++

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 265
    Points : 290
    Points
    290
    Par défaut
    salut,

    Tu peux ajouter un champ calculé de type booleen.

    A coté de ça tu instancies une liste de ce que tu veux qui stocke les identifiants des enregistrements cochés.

    Dans l'evenement onCalcField du DataSet tu regardes si l'enregistrement est dans la liste et tu affectes la bonne valeur au champs booleen calculé.

    Quand l'utilisateur clic sur la case à cocher tu ajoute l'enregistrement à la liste.

    a+

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Sauf erreur de ma part le calcfields n'est modifiable que dasn l'evt oncalcfields.
    Ya un moyen pas trop compliqué qui doit pouvoir marcher c'est de rajouter un champs constant de type booléen à ta requête ou à ta procédure stockée.

    select a.*, true from a

    Ca te permet d'avoir un champs dispo supplémentaire au niveau de ton query. Il suffira après de modifier tes requêtes de mise à jour pour supprimer ce champs.

    J'aime pas trop cette écriture et je préfère normalement utilisé des clientdatasets en créant des calcinterne, mais si tu n'as pas ce composant ca peut être une solution simple à ton pb.

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je te conseillerai le composant SMDbGrid qui permet de faire cela facilement.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Bonjour ! merci beaucoup de vos réponse.

    J'avais déjà vaguement penser à ces deux méthodes...

    macumba :
    Pour ce qui est du champ ajouté à la SP, sa serait valable si je n'avais pas besoin de ça dans toutes mes SPs. C'est très embêtant dans le sens que je dois passé partout pour ajouter le champ. Mais je pense que dans un cas isolé je utiliserais cette manière. (Bien que je en pense pas que cela soit des plus propres... /!\ Coup de fouet des ingénieurs /!\)

    Zatoobux :
    Je pense que je vais tenter ce système, le seule soucis c'est que je vais devoir joeur avec le OnClick qui va modifier directement ma liste et qui elle va allimenter les champ calculer... le seul soucis c'est de pouvoir faire un truc un peu pret optimisé.... Parce que si je dois scanner pour chaque ligne une énorme liste de record....

    En tout cas merci de votre aide, et si quelqu'un à une idée mortel de la mort...
    @@++

  6. #6
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Ah ça m'a l'aire tout à fait bien comme composant cette grille....
    En plus c'est gratuit...

    BEAU C'T APERO !!!

    Merci bien, je vais voir un peu comment ça marche et je vous tient au courant.
    @@++

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Seboubou86
    Ah ça m'a l'aire tout à fait bien comme composant cette grille....
    En plus c'est gratuit...

    BEAU C'T APERO !!!

    Merci bien, je vais voir un peu comment ça marche et je vous tient au courant.
    J'utilise cette grille depuis 5 ans environ, donc si tu as quelques problèmes je pourrais surement te guider (surtout pour l'utilisation que tu veux en faire)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Ok... Ben c'est bien sympa de t'as part !!

    Elle est bien fonctionnel ?? ou bien y a quelque bug ??

    (genre en général ce genre composant, sont complétement payant...)
    @@++

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Seboubou86
    Ok... Ben c'est bien sympa de t'as part !!

    Elle est bien fonctionnel ?? ou bien y a quelque bug ??

    (genre en général ce genre composant, sont complétement payant...)
    Je n'ai pas rencontré de bug particulier avec cette Grid depuis que je l'utilise.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  10. #10
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Super du coup je vais utiliser cette grille.

    Une petite question, elle existe en version DotNet ??

    ou bien du fait qu'elle est descend de composant VCL Standard (TDBGrid), elle pourra être migrée facielement ??
    @@++

  11. #11
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Seboubou86
    Super du coup je vais utiliser cette grille.

    Une petite question, elle existe en version DotNet ??

    ou bien du fait qu'elle est descend de composant VCL Standard (TDBGrid), elle pourra être migrée facielement ??
    J'en sais strictement rien je n'utilises que la VCL ^^
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  12. #12
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Pas grave.

    En tout cas merci beaucoup de m'avoir fait découvert ce composant.

    Je mettrais le Tag résolut sur ce poste un peu plus tard lorsque j'aurais bien pu tester.
    @@++

  13. #13
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Sinon, pour sélectionner un ou plusieurs records d'un DataSet sans avoir à rajouter un champ booleen (et c'est comme ça que fait SMDBGRID, très très bon au deumeurant), tu peux passer par les bookmarks.

    C'est là où est la clé de ta solution.
    Tu devrais sans trop de difficulté, trouver un tutoriel sur les TBookmark et TBookmarkList dans l'aide Delphi, ton site préféré (DVP bien sur ) et internet en général.


    Bookmark signifie Signet, autrement dit, les bookmarks est un système de marque-pages pour savoir quel champ à été marqué dans ta table. C'est très efficace et puissant

    Y'a plus qu'à !
    Bon dev
    Bidouilleuse Delphi

  14. #14
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    waskol :
    Oui je vois tout à fait ce que tu veux dire.
    Mais il faut créer soit même les case à cocher dans le bord de la grille.
    Et comme la SMDBGrid le fait à merveille, je vais l'utiliser surtout qu'elle offre pas mal d'autre possibilité qui me paraisse tout à fait intéressante.

    En tout cas pour le moment cette grille m'a l'aire de fonctionner à merveille. J'utilise la propriété SelectedRows, qui me retourne une BookMarkList avec tous mes recors sélectionner. Vraiment TOP !!!
    @@++

  15. #15
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Seboubou86
    waskol :
    Oui je vois tout à fait ce que tu veux dire.
    Mais il faut créer soit même les case à cocher dans le bord de la grille.
    Et comme la SMDBGrid le fait à merveille, je vais l'utiliser surtout qu'elle offre pas mal d'autre possibilité qui me paraisse tout à fait intéressante.

    En tout cas pour le moment cette grille m'a l'aire de fonctionner à merveille. J'utilise la propriété SelectedRows, qui me retourne une BookMarkList avec tous mes recors sélectionner. Vraiment TOP !!!
    Enfait cette grille évite pas mal de programmation avec toutes les fonctionnalité qu'elle a (le changement de couleur des lignes une sur deux par exemple ^^)

    Allez waskol on va arriver à convertir tout le monde à cette grid
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  16. #16
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Ouais en effet.

    Mais ce qui m'étonne le plus c'est qu'elle soit gratuite...

    Il me semble que toutes les grilles un peu évoluée que j'ai vu était payant (par exemple la TDxDbGrid).
    @@++

  17. #17
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Seboubou86
    Ouais en effet.

    Mais ce qui m'étonne le plus c'est qu'elle soit gratuite...

    Il me semble que toutes les grilles un peu évoluée que j'ai vu était payant (par exemple la TDxDbGrid).
    Surement pour appater les clients pour ces composants payants, vu la qualité des composants Gratuits ca n'augure que du bon pour les payants ^^
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  18. #18
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Je pense très sincèrement que ce composant grille est de loin la plus aboutie et la mieux pensée qui existe pour Delphi.

    (Texte secret pour malatar : on y arrive malatar, on y arrive : on va tous les convertir )
    Bidouilleuse Delphi

  19. #19
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par waskol
    Je pense très sincèrement que ce composant grille est de loin la plus aboutie et la mieux pensée qui existe pour Delphi.
    Tu as oublié qq chose à mon avis
    ce composant grille gratuit
    cf. les composants grilles de DevXpress...

    Ceci dit je confirme pour la qualité du produit bien que la doc soit succinte et il reste fonctionnellement perfectible. Mais c'est le "problème" des composants qui vous facilitent le développement, on leur en demande tjrs plus .

    Pour le portage sous .NET comme les sources sont fournis il ne te reste qu'a les recompiler pour avoir une idée de la faisabilité...

  20. #20
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    C'est vrai que les composants DevExpress sont d'une qualité exceptionnelle, en fait voici ceux que je préconise en matière de grilles, classés dans l'ordre de préférence (la mienne) :
    - TSMDBGrid (gratuit)
    - Les Grilles DevExpress (Commercial)
    - Virtual TreeView (gratuit)
    - La grille de chez Woll2Woll (Composants commerciaux Infopower)
    - DbAltGrid de chez Quasidata (commercial)


    La grille de chez TMS serait interressante si elle n'était pas assortie d'autant de bugs... (comme tout le reste de chez TMS d'ailleurs : des idées, des bonnes, mes des bugs... dommage).
    Pour le reste ça reste assez classique...
    Bidouilleuse Delphi

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/09/2010, 10h49
  2. [AC-2007] mettre à jour des records dans une table liée
    Par mandrake_of_mandregas dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/07/2010, 19h49
  3. SOS : Comment inserer des données dans un dataset ?
    Par alexia_78 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/07/2008, 13h50
  4. Garder l'ordre des Records dans une requete select distinct
    Par pobrouwers dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 21/02/2007, 22h06
  5. [VB.NET] Requete avec des dates dans un DataSet
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2005, 14h30

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