|
|
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Господа, такая задача: Есть открытый Recordset, который содержит выборку из базы данных SQL. Задача - выполнить к рекордсету ещё серию запросов (циклическая обработка). Это возможно? Или может быть в Экселе можно создать виртуальную временную таблицу, к которой потом можно применять селекты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 18:06 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Flaer, может быть лучше в SQL-запросе использовать подзапросы (т.е. вложенные запросы), чтобы делать выборку данных за один "проход"? Предпочтительно, конечно, организовать сложный запрос без подзапросов, если это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 18:55 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Обычно так и делаю, максимум нагрузки отдаю на SQL Server, но в данном случае если сделать цикл непосредственно к БД, но тогда у меня вырастает порядка 100 тыс дополнительных запросов к БД, чего сами понимаете делать не хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 19:05 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Тогда, наверное, - временная таблица на листе Excel. Только не виртуальная, а вполне реальная )) И фильтр. Авто- или расширенный... Можно, конечно, при желании, делать запросы к книге Excel и через подключение с помощью ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 19:14 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Это не вариант-не хватит листа для всех срок (более 100 тыс), да и медленно это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 19:41 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Посмотрел про рекордсет: есть у него св-во Filter для извлечения поднабора записей. Есть ещё методы Find (находит набор записей, соответствующих какому-то критерию) и Seek (поиск записи с исп. индекса, но только на наборе клиентской стороны). Всё это я использовать не пробовал, но, возможно, что-то из этого перечня Вам поможет )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 20:07 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Нарыл про синтаксис: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 22:18 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
FlaerЭто не вариант-не хватит листа для всех срок (более 100 тыс), да и медленно это Если можно дробить запросы на части, по кол-ву строк листа Excel, то это - всего 2 запроса в версии Excel младше 12-й, а в 2007-м - строк хватит с лихвой без дробления. Насчёт "медленно" не соглашусь: содержимое рекордсета копируется на лист оч. быстро (диапазон.CopyFromRecordset rs); фильтры Excel работают также не медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 22:33 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Flaer, Flaer...но тогда у меня вырастает порядка 100 тыс дополнительных запросов к БД... Flaer...всех срок (более 100 тыс)... рискуете состариться пока клиент будет 100к запрососв к набору записей из >100к строк отрабатывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 22:46 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
Про оперативную память, Дождёмся комментария автора. Пока сообщение о 100к запросов к БД воспринимаю как опечатку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 22:51 |
|
||
|
Sql - запрос к Recordset
|
|||
|---|---|---|---|
|
#18+
vlthЕсли можно дробить запросы на части, по кол-ву строк листа Excel, то это - всего 2 запроса в версии Excel младше 12-й, а в 2007-м - строк хватит с лихвой без дробления. Насчёт "медленно" не соглашусь: содержимое рекордсета копируется на лист оч. быстро (диапазон.CopyFromRecordset rs); фильтры Excel работают также не медленно.Да и в память при желании загнать в виде массива тоже не такая уж проблема: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. А еще рекордсет можно легко загнать в сводную таблицу Код: plaintext 1. 2. 3. 4. 5. 6. Вообще, топик-стартеру не мешало бы несколько приоткрыть завесу таинственности вокруг выссказывания "выполнить... серию запросов (циклическая обработка)" посредством конкретного примера запроса или даже фрагмента кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2010, 17:53 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=162&tid=2178135]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 312ms |

| 0 / 0 |
