Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объеденение n Recordset-ов / 10 сообщений из 10, страница 1 из 1
20.02.2009, 11:07
    #35829165
Nitrolis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
Всем привет)
Вопрос крайне простой, надеюсь ответ тоже... есть n совершенно одинаковых Recordset-ов (rs1, rs2... rsn), у которых много Fields. Необходимо их объединить в один, той же структуры. Как это оптимально можно сделать?
...
Рейтинг: 0 / 0
20.02.2009, 11:32
    #35829260
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
никак... рекордсеты, можете представить себе как указатели на таблицы с состоянием... Если нужно объединить данные стройте соответствующий запрос
...
Рейтинг: 0 / 0
20.02.2009, 11:38
    #35829279
Nitrolis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
Спасибо за ответ...
может есть способ перебирая строки в rs1...n добавлять эти строки в resultRS?
...
Рейтинг: 0 / 0
20.02.2009, 13:36
    #35829710
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
Смотрите recordset.addnew, если рекордсет привфязаный повлияет на источник строк. В любом случае решение выбрано неверное... приведите задачу
...
Рейтинг: 0 / 0
20.02.2009, 14:52
    #35829922
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
Можно создать отвязанный Recordset и запихнуть данные в него...
...
Рейтинг: 0 / 0
20.02.2009, 15:16
    #35829989
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
NitrolisСпасибо за ответ...
может есть способ перебирая строки в rs1...n добавлять эти строки в resultRS?

Как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...
MyAddRecords rs1, resultRS
MyAddRecords rs2, resultRS
...
MyAddRecords rsn, resultRS
...
...

Public Function MyAddRecords(rs As ADODB.Recordset, rd As ADODB.Recordset)
    Dim f As Adodb.Field

    Do Until rs.Eof
        rd.AddNew
        For Each f In rd.Fields
            f = rs(f.Name)
        Next f
        rd.Update
        rs.MoveNext
    Loop
End Function
...
Рейтинг: 0 / 0
20.02.2009, 15:33
    #35830034
Nitrolis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
Есть несколько серверов, на каждом выполняется ХП, которая формирует данные. Результат ХП необходимо объединить в одну временную(!) таблицу на любом из серверов, либо в RS на клиенте, где должен быть результирующий набор данных...
Конструкция
INSERT INTO #table(...)
EXEC LinkedSRV1..SP_PROC @..@...@>>>
INSERT INTO #table(...)
EXEC LinkedSRVn..SP_PROC @..@...@>>>
Select * from #table
результата не дает... много тонкостей, настроек линков, в итоге много проблем... предположил, что легко можно через Recordset получить данные и объеденить...
...
Рейтинг: 0 / 0
22.02.2009, 18:47
    #35831868
slope
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
вариант с представлениями не рассматривали? сложновато но будет красиво.
объединить в том виде в котором вы предлогаете не знаю можно ли, но если выводите данные например в MSFlexGrid то методом MSFlexGrid.AddItem можно легко это сделать.
...
Рейтинг: 0 / 0
05.03.2009, 12:29
    #35852973
Nitrolis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
AndrF,
Спасибо, всё получилось... с небольшими уточнениями Вашего примера...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
MyAddRecords rs1, resultRS
MyAddRecords rs2, resultRS
...
MyAddRecords rsn, resultRS
...
...

Public Function MyAddRecords(rs As ADODB.Recordset, rd As ADODB.Recordset)
    Dim f As Adodb.Field
    rs.MoveFirst 
    Do Until rs.Eof
        rd.AddNew
        For Each f In rd.Fields
            f = rs.Fields(f.Name)
        Next f
        rd.Update
        rs.MoveNext
    Loop
End Function
...
Рейтинг: 0 / 0
05.03.2009, 13:00
    #35853080
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объеденение n Recordset-ов
rd.Update не обязательно.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объеденение n Recordset-ов / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]