Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.03.2012, 11:24
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Народ, помогите разобраться( В рекордсете n кол-во записей, упорядоченных по возрастанию номера Id. Id некоторых из них может совпадать, такие записи всегда расположены рядом. Необхоидмо перебрать записи рекордсета и вывести так, чтобы при совпадении id выводилась только запись, стоящая последней. Например. Id1 Id2 Id3 Id3 Id3 Id4 должно получиться: Id1 Id2 Id3 (последняя из трех) Id4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:06
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:15
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Наверно так наглядней: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:38
|
|||
---|---|---|---|
|
|||
Задача перебор рекордсета определенным образом |
|||
#18+
Ну либо можно это сделать, перестроив сам SQL-запрос - источник рекордсета. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:41
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
TpaBka, rs.AbsolutePosition <> -3 а эту строку можно пояснить? а то что-то не врубаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:51
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Const adPosEOF = -3 (&HFFFFFFFD) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:54
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
AbsolutePosition -позиция курсора в рекордсете начинается с 1 -3 - означает, что курсор находится за последней записью ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 12:59
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Что за странная логика? С ее точки зрения при "AbsolutePosition -позиция курсора в рекордсете начинается с 1" что тогда означают -1, -2 и -4? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:03
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
TpaBka, If rs("id") <> LVal Then Получается если новая запись не равна предыдущей, то она выводится. А если следующая за ней будет ей равна? Получается следующая будет пропущена. А мне нужно наоборот, чтобы выводилась ПОСЛЕДНЯЯ из дублирующихся записей, а не первая. Вот в чем проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:04
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Antonariy, ну млин я имел ввиду, что если рекордсет не пустой и он стоит на первой записи то его позиция=1 а не 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:05
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
DrunkWolf, Вы проверяли код? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:06
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
TpaBkaAntonariy, ну млин я имел ввиду, что если рекордсет не пустой и он стоит на первой записи то его позиция=1 а не 0 он в смысле курсор ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:09
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:14
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
TpaBkaDrunkWolf, Вы проверяли код?Этот код работает только если нам нужно выводить лишь поле id, а не всю запись. А если всю? Первая запись начисто игнорируется: Код: vbnet 1. 2. 3. 4. 5.
А если она одна с таким id? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:40
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
AntonariyTpaBkaDrunkWolf, Вы проверяли код?Этот код работает только если нам нужно выводить лишь поле id, а не всю запись. А если всю? Первая запись начисто игнорируется: Код: vbnet 1. 2. 3. 4. 5.
А если она одна с таким id? Ничего там не игнорируется А насчет записи, я только показал автору идею, что бы он немного подумал, а вообще дальше можно искать запись в клоне по AbsolutePosition кстати Antonariy ваш вариант не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:45
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Antonariy, вери Спс, работает, а если мне помимо этого, из невыведеных дублирующих записей еще нужно собрать значения определенного поля, скажем "Field" т.е. было: Id1 Field1 id2 Field2 Id3 Field3 Id3 Field4 Id3 Field5 Id4 Field6 Id5 Field7 А станет: Id1 Field1 id2 Field2 Id3 (Field5+Field4+Field3) Id4 Field6 Id5 Field7 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 13:53
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Antonariy, Пардон на print случайно вывел rsClone ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 16:13
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
DrunkWolf, "выводим" замени на метод, который принимает id в качестве фильтра рекордсета и фперёд. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.03.2012, 23:44
|
|||
---|---|---|---|
|
|||
Задача перебор рекордсета определенным образом |
|||
#18+
Если рекордсет основан на SQL запросе, то почему бы не решить эту задачу в SQL? SUM + GROUP BY? Это я к 12326947 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2012, 12:02
|
|||
---|---|---|---|
Задача перебор рекордсета определенным образом |
|||
#18+
Antonariy Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Кстати так теряется последняя строка из дублирующихся ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2157943]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 467ms |
0 / 0 |