2010-06-01 20 views
0

J'ai créé un DBGrid dans Delphi 6 et l'ai lié à un DataSource contenu dans un DataModule. L'ensemble de données pour cette source est également situé dans le même module. Dans l'événement OnShow pour le formulaire, j'active l'ensemble de données et définissez un libellé égal au nombre de lignes de l'ensemble de données. Cela montre plusieurs centaines de lignes mais rien ne se voit dans le dbgrid. Si j'active l'ensemble de données dans l'EDI, la grille se remplit avec les données attendues. Est-ce que quelqu'un a une idée de la raison pour laquelle ce comportement changerait entre l'EDI et l'exécution normale? Nous utilisons également des composants de connexion SDAC.Comment obtenir l'ensemble de données pour remplir des données dans dbgrid dans Delphi 6?

Tous les choix de composants tiers ne sont pas à moi.

Je peux élaborer au besoin pour clarifier, mais j'ai principalement besoin d'idées de dépannage pour commencer à.

Répondre

2

J'ai observé plusieurs fois dans D6 que les contrôles de données peuvent perdre leurs paramètres lors de l'exécution, en particulier ceux qui associent un contrôle à un autre. Vous pouvez essayer de définir explicitement les noms pertinents dans votre code OnShow avant d'activer la source de données.

+0

J'ai ajouté un ensemble explicite dans le code OnShow et cela semble fonctionner, est-il une cause connue de ces paramètres à se perdre? –

+0

@ChrisJ Rien que je pourrais jamais découvrir. Il était également difficile de reproduire de manière cohérente (mais cela semblait se produire plus souvent au fur et à mesure que l'application prenait de l'ampleur), alors je n'ai jamais eu l'occasion de déposer un rapport de bogue. –

+0

Cela peut-il avoir quelque chose à voir avec l'ordre dans lequel les formulaires sont instanciés dans le projet? –

1

Je n'ai pas travaillé avec delphi pendant quelques années, mais je me souviens que la propriété de source de données est parfois perdue si l'ensemble de données est maintenu actif = vrai au moment de la conception.

+0

En outre, vous devez définir ces propriétés par programmation au démarrage de l'application ... – pcent

+0

Il n'était pas actif lorsque je l'ai compilé. –