Вверх ↑
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
#1: 2008-10-31 19:45:04 ЛС | профиль | цитата
Добрый день!
Использую вот такой, написанный Ником код, для работы с MSSQL.
code_983.txt
Все хорошо, за исключением одного но. Один из запросов очень длительный, более 40 секунд в QA. И в нем он выполняется. Оптимизировать не надо, запрос просто такой. Надо увеличить в коде время, после которого будет понятно что уже ничего не вернется, увеличить time-out.

Не поможете как сделать?
карма: 0

0
файлы: 1code_983.txt [2.4KB] [309]
Ответов: 1088
Рейтинг: 112
#2: 2008-10-31 19:57:27 ЛС | профиль | цитата
Единственный таймаут наблюдаю с строке 27: cn.ConnectionTimeout = 280.
Правда в SQL я не гуру так что...
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 689
Рейтинг: 20
#3: 2008-10-31 20:08:53 ЛС | профиль | цитата
Sniper36, который я же и написал, и который не работает. В коде создается объект рекорд сет, а как на него поставить тайм-аут запроса мне не ясно. Тут скорее не гуру SQL, а совместный гуру SQL and VBScript
карма: 0

0
Ответов: 1088
Рейтинг: 112
#4: 2008-10-31 20:23:36 ЛС | профиль | цитата
Вот вроде похожий случай:
http://www.gotdotnet.ru/Forums/Chats/461996.aspx
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 2125
Рейтинг: 159
#5: 2008-10-31 21:07:07 ЛС | профиль | цитата
Во-первых не ConnectionTimeout, а CommandTimeout, а во-вторых, не надо передавать строку подключения, когда открываешь Recordset, надо туда открытый Connection передавать:

#bas
Set cn = CreateObject("ADODB.Connection")
cn.CommandTimeout = 280
cn.Open strDBopen

Set RS = CreateObject("ADODB.RecordSet")
RS.Open Data, cn, adOpenDynamic, adLockPessimistic
------------ Дoбавленo:

Ещё несколько замечаний:
1. зачем собирать все результаты в одну строку, а потом вытягивать по одной из StrList? Мало того, что скрипт при большом количестве операций с большими строками работает очень медленно, так ещё и лишние компоненты.
2. если в строке подключения используется DSN, значит это имя ODBC DSN, не проще ли использовать компонент ODBC в таком случае?
3. если не хочется иметь дело с ODBC, подключение должно выглядеть так:

#bas
cn.Open "Provider=SQLOLEDB;Initial Catalog=" + dbname + ";Data Source=" + dbdsn, dbuser, dbpass
карма: 1

0
Ответов: 3851
Рейтинг: 159
#6: 2008-11-01 11:45:38 ЛС | профиль | цитата
эта тема у меня не отмечается прочтённой после её посещения.
карма: 0
начавший
0
Ответов: 689
Рейтинг: 20
#7: 2008-11-01 13:13:41 ЛС | профиль | цитата
спасибо, все заработало. Но к самой еще требуется указать тип синхронизации.
карма: 0

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)