2010-02-14 6 views

Répondre

2

Si l'ensemble de données provient d'un moteur de stockage basé sur SQL, utilisez une sélection distitter requête sur la table jointe avec uniquement les champs de la table maître dans le jeu de résultats. Laissez le moteur SQL faire le travail pour vous.

+0

Les données CAMES à partir d'un fichier XML avec trois niveaux d'imbrication de table. Merci –

+0

Si vous analysez vous-même les données XML, vous pouvez ajouter un champ supplémentaire ChildNodeCount à l'ensemble de données maître et le remplir pendant l'analyse et utiliser OnFilterRecord pour vérifier s'il est> 0. De toute façon: à la fin, il faut compter les enregistrements enfant: Avoir le compte dans la table principale vous donnera un avantage de vitesse sur le filtrage en utilisant l'analyse des enregistrements dans un ensemble de données détaillées, mais cela ne sera un problème si vous avez un grand quantités de données. –

1

En fonction de votre situation, vous pouvez utiliser:

  1. En OnFilterRecord événement, vous pouvez avoir:

    Accepter: = myDataSetField.NestedDataSet.RecordCount> 0; Si vous avez un backend SQL, vous pouvez utiliser le Exists ou Count pour récupérer uniquement les enregistrements dont vous avez besoin. Peut-être est la meilleure approche si vous êtes sur un réseau. Cependant, je ne sais pas quelle infrastructure vous avez.

  2. En OnFilterRecord événement, vous pouvez avoir:

    Accept: = non myDataSetField.IsNull; // Il suffit de tester si le champ de DataSet est vide - qui est l'un des plus rapides façons de le faire ... mais cela dépend de la structure de vos données/ensemble de données, etc.

  3. Parfois, vaut mieux avoir un champ dédié dans votre DataSet/Table pour spécifier ce statut, car obtenir ces informations à partir de l'ensemble de données imbriqué peut être coûteux. (Il faut le récupérer au moins partiellement, etc.)

  4. De même, pour les mêmes considérations (voir 4. ci-dessus), vous pouvez peut-être avoir une procédure stockée (si votre backend DB le permet) pour obtenir cette information.

HTH

Questions connexes