Bug DBCtrlGrid & DBCheckBox

oberat Messages postés 2 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 28 août 2012 - 28 août 2012 à 10:18
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 28 août 2012 à 17:21
Bien le bonjour à tous les gens qui jetteront un oeil sur mon message.
Je suis face à un épineux problème concernant les DBCtrlGrid et DBCheckBox.
Contexte : Delphi & EDI XE2
Donc j'ai une form, avec ce DBCtrlGrid, un tas de DBText et un DBCheckBox. Tout ce beau monde est correctement lié au DS/Field. A l’exécution un tas d’occurrences prend place dans le DBCtrlGrid... Jusque là, rien d'anormal.
Le problème que je rencontre est le suivant : le DBCheckBox est présent sur chaque ligne, sauf que tous les dbCheckBox sont liés à l'enregistrement sélectionné : je clique sur un enregistrement où le champ booléen en BD vaut true, et voila qu'ils valent tous true, je clique sur un enregistrement avec [..] à faux, et voila qu'ils sont tous dessinés faux...
Mon champ booléen est un varchar(4) vu en tant que StringField. Je me demande toujours pourquoi c'est comme ça mais FlameRobin, l'utilitaire avec lequel j'ai créé la table n'avait pas de type booléen à disposition et delphi couine quand il veut stocker un booléen dans un varchar(1, 2 ou 3...) alors qu'il l'a très bien fait dans un varchar(1) plus loin dans le programme... Enfin bref, ya certains trucs de delphi que je n'arriverai jamais à comprendre.
J'ai lu sur un autre forum que le DBCtrlGrid était juste un gros trick sur le paint (ou l'équivalent delphiesque, je suis désolé, déformation java :O), du coup je me pose la question : je fais comment pour pouvoir afficher le checkbox correspondant à chaque enregistrement? La méthode du DBGrid + DBCheckBox résout? Quelqu'un est passé par là?
Merci bien à ceux qui voudront m'aider & à tantot!

1 réponse

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
28 août 2012 à 17:21
Bonsoir,

je n'ai pas XE2 mais les soucis de sgbd sont toujours les mêmes.
attention, pour l'instant au vu de ce que tu as écrit ton grid est en en lecture seule.
Il affiche les données présentes dans la table.

Si tu souhaites pouvoir changer la case à cocher sur un clic, il faut le programmer !
car cette opération étant une modification, va nécessiter au minimum un starttransaction, un edit, un post et un commit.

nb:les booléens peuvent se stocker en integer (1 ou 0)

cantador
0
Rejoignez-nous