Excel 2003. Зависание при выводе результата запроса к MS SQL

Программирование на Visual Basic for Applications
Maxim G.Borisov
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 28.06.2007 (Чт) 7:50

Excel 2003. Зависание при выводе результата запроса к MS SQL

Сообщение Maxim G.Borisov » 28.06.2007 (Чт) 8:07

MS EXCEL 2003
Клиент 1.5 ГГц, 512 Мб
Сервер хз какие камни, 4 Гб

В лист Excel на клиентской машине выводятся результаты ряда запросов (около 500) к MS SQL, находящейся на сервере. Запросы достаточно длительные (от 5 до 60 сек каждый). При выводе длительных запросов, время формирования которых около минуты, Excel часто подвисает. Есть подозрение, что он просто "не дожидается" результатов запроса от сервера... может быть как-то можно увеличить таймаут ожидания?
Примерно следующий код использую при работе с запросами:

Dim sCommandText As String
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
...
sCommandText = ...
cmd.CommandText = sCommandText
Set rs = cmd.Execute
If (Not rs.EOF) Then
Worksheets(sList).Cells(iY, iX) = rs(0)
End If
....

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.06.2007 (Чт) 9:03

Таймауты задаются в строке подключения.
Также его можно задать, устанавливая свойство ADODB.Connection.CommandTimeout
Lasciate ogni speranza, voi ch'entrate.

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 29.06.2007 (Пт) 8:09

используйте асинхронное выполнение запросов
немного сложнение, но зато ничего не виснет
I Have Nine Lives You Have One Only
THINK!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 116

    TopList