|
|
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
Делаю к базе из Экселя запросы через ODBC. Проблем нет, когда текст запроса < (приблизительно) 3000 знаков. А если больше - не работает. Может, кому-то удалось решить проблему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:21:15 |
|
||
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
К какой базе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:31:30 |
|
||
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
uu_vanoДелаю к базе из Экселя запросы через ODBC. Проблем нет, когда текст запроса < (приблизительно) 3000 знаков. А если больше - не работает. Может, кому-то удалось решить проблему ? Делаешь в базе хранимую процедуру и обращаешься из Экселя к ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:46:47 |
|
||
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
База - MS SQL 2000 Идея с хранимой процедурой хороша, но сделать в базе процедуру не могу - не те права доступа :-( Ещё идеи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 11:46:12 |
|
||
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
Используй MS Access. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 12:10:07 |
|
||
|
Обратиться к базе из Экселя с большим запросом
|
|||
|---|---|---|---|
|
#18+
uu_vanoБаза - MS SQL 2000 Идея с хранимой процедурой хороша, но сделать в базе процедуру не могу - не те права доступа :-( Ещё идеи ?Ящик пива админу базы? :) Тогда прийдется в макросе заводить ADO. Создаешь коннект к базе. Режешь свой запрос на несколько более коротких (видимо со временными таблицами) и кидаешь его в базу по частям. Полученый в итоге резалт-сет уже копируешь на лист экселя. Потом commit/rollback и рвешь коннект. Получится медленнее чем родной QueryTable, но будет работать. Другой вариант: делаешь десяток QueryTables на разных листах, вытягиваешь в них данные подзапросов а итоговый резалтсет собираешь уже вручную через циклы на VBA. Третий вариант: пишешь на чем-нибудь низком (типа С) специальную программку, передаешь ей в командной строке параметры, она делает всю необходимую работу через ODBC, и возвращает результат в виде csv файла. Из VBA будешь звать эту программку, дожидаться ее завершения и импортировать к себе итоговый csv. И наконец вариант с которого надо начать: усиленно подумать и сократить этот гигантский запрос до чего-нибудь более удобоваримого. После чего поставить пиво админу :) Вообще-то странное ограничение в три тысячи знаков. ODBC не имеет ограничения на длину запроса. Во всяком случае, я сам кидал в базу скрипты более ста килобайт размером за один SQLExecDirect(). Никаких проблем не испытывал. Это либо MSQuery либо сам Excel хулиганит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 18:20:39 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33603442&tid=2185107]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 319ms |

| 0 / 0 |
