2013-12-03 3 views
0

Я создал набор записей ADO (в VBScript), используя .append. То есть набор записей не создается оператором SQL, извлекающим информацию из базы данных.Получить не-базу данных ADO Recordset Distinct records

Есть ли способ SQLish Я могу получить записи из этого набора записей и вернуть его в другой набор записей?

E.g. SET = adoUniqueRS = SELECT DISTINCT [FieldWithDupes] FROM [adoRSwDupes]


До сих пор наиболее эффективным, что я могу думать о перебрать отсортированный [adoRSwDupes] на [FieldWithDupes] и добавить новую запись в [adoUniqueRS] когда [FieldWithDupes] изменяет значения.

Любые лучшие идеи?

+1

Я предлагаю вам использовать словарь, как описано [здесь] (http://www.knowledgeinbox.com/articles/vbscript/removing-duplicate-values-from-a-list-of-values/) –

ответ

0

Я не знаю, как запустить запрос по отключенному набору записей, извините.

В области идей, как только набор записей отсортирован, вместо повтора по полному набору записей вы можете его отфильтровать. Идея такова:

While recordset has records 
    Get first record data 
    Filter the recordset to data > retrieved data 

Таким образом, после установки фильтра текущая запись будет первой в следующем наборе данных. Повторяйте, пока данные не останутся.

+0

I как эта идея, и я думаю, что буду использовать ее в будущем. Подумав об эффективности итерации всего RS по сравнению с этим методом, я думаю, что ваш метод будет более эффективным для того, где дублирующиеся значения являются значительным процентом от набора. Я думаю, что повторение всего набора более эффективно, когда есть как два из каждого значения. Я не мог доказать, так или иначе, с моими конкретными данными, но это хорошая идея! Благодарю. – BrINClHOF

Смежные вопросы