2015-11-09 3 views
1

Вот мой код для открытия соединения с базой данных и делает запросПочему этот тайм-аут задолго до 30 минут?

Set dbo = CreateObject("ADODB.Connection") 
dbo.CommandTimeout = 1800 
dbo.ConnectionTimeout = 1800 
dbo.Open(DSN) 
Set results = CreateObject("ADODB.recordset") 
results.open SQL, DSN 
if results.eof then 
    Wscript.StdOut.WriteLine "No records found." 
else 
    stuff happens here 
end if 

По какой-то причине он держит синхронизации через 30 секунд, независимо от того, как установить CommandTimeout и ConnectionTimeOut на связи.

Microsoft OLE DB для драйверов ODBC: [ODBC Cache] [Состояние: S1T00] [N ческие код 450]

Я не вижу никакой timeout собственности на the ADODB.Recordset object.

+0

Это зависит от поставщика и устанавливается с помощью 'коллекции .Properties'. Вероятно, с использованием значения тайм-аута по умолчанию для Caché DB см. [Использование Caché в качестве источника данных ODBC в Windows] (http://docs.intersystems.com/ens201513/csp/docbook/DocBook.UI.Page.cls?KEY=BGOD_winodbc) – Lankymart

+0

Кажется, что вы можете переопределить параметр «Отключить тайм-аут запроса» - см. [Руководство пользователя Caché ODBC/JDBC - Подключение через ODBC] (http://docs.intersystems.com/cache41/dbc/dbcoconnect.html) – Lankymart

ответ

1

Я нашел настройку ниже. Это не идеально, но по крайней мере мои длительные запросы выполняются, даже если они занимают несколько дней.

enter image description here

Смежные вопросы