Как фильтровать набор данных по количеству записей вложенного набора данных? - PullRequest
1 голос
/ 15 февраля 2010

У меня есть набор данных, я хочу применить фильтр на основе количества записей в полях типа набора данных, например: 'NESTED_DATASET_FIELD.RecordCount> 0'

Ответы [ 2 ]

2 голосов
/ 15 февраля 2010

Если набор данных поступает из механизма хранения на основе SQL, используйте запрос select distict для объединенной таблицы, в котором в результирующем наборе содержатся только поля из основной таблицы. Пусть движок SQL сделает всю работу за вас.

1 голос
/ 15 февраля 2010

В зависимости от вашей ситуации вы можете использовать:

  1. В OnFilterRecord мероприятии вы можете:

    Принять: = myDataSetField.NestedDataSet.RecordCount> 0;

  2. Если у вас есть SQL-сервер, вы можете использовать Exists или Count, чтобы получать только те записи, которые вам нужны. Возможно, это лучший подход, если вы находитесь в сети. Однако я не знаю, какая у вас инфраструктура.

  3. В событии OnFilterRecord вы можете:

    Принять: = не myDataSetField.IsNull; // Просто проверяем, является ли поле DataSet пустым - это один из быстрых способов сделать это ... но это зависит от структуры ваших данных / набора данных и т. д.

  4. Иногда лучше иметь специальное поле в вашем наборе данных / таблице, чтобы указать этот статус, потому что обычно получение такой информации из вложенного набора данных может быть дорогостоящим. (Нужно взять его хотя бы частично и т. Д.)

  5. Кроме того, по тем же соображениям (см. 4. выше), возможно, у вас может быть Хранимая процедура (если позволяет ваш бэкэнд БД) для получения этой информации.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...