Как поменять ODBCTimeout для AccessXP?

uagg
Дата: 12.11.2001 18:16:27
Собственно сабж...
В 97 это легко меняется в реестре, а в ХР что-то в упор не найду этой ветки
У меня некоторые View присоеднены как таблицы и они честно сообщают, что у них timeout - 600 (при этом открываются они быстро, но прокручиваются медленно ). А дефолтовый timeout - 60. Как установить timeout по дефолту?
barrabas
Дата: 20.01.2006 14:28:40
Как ты смотришь timeout у присоединенных таблиц в 97? у меня получается только у запросов к серверу посмотреть ODBCTimeOut?
msn13
Дата: 20.01.2006 14:54:03
uagg
У меня некоторые View присоеднены как таблицы

человек типа молодой, да это ж запрос к серверу, как мне сдаеться! не хочу проверять но разве через кверидевс нельзя достучаться до этого свойство?
barrabas
Дата: 20.01.2006 17:28:42
Это не запрос, у запроса к серверу спокойно можно менять там свойство ODBCTimeOut. Проблема в другом.
В оракле есть сохраненный запрос (veiw) а к аксесу они присоединяются как таблица. Вот если запрос на серваке выполняется больше 60 сек. в оксессе вылетает ошибка (типа долго и все такое), приходится использовать запрос к серверу вместо присоединенных таблиц, там можно в свойствах выставить 0 и он будет здать хоть год. А как зделать чтоб присоединенные таблицы он здал сколько нужно?
4321
Дата: 20.01.2006 18:31:51
F1
В следующем примере задается значение свойства QueryTimeout текущей базы данных:

Sub SetTimeout()
	Dim dbs As Database

	' Возвращает ссылку на текущую базу данных.
	Set dbs = CurrentDb
	dbs.QueryTimeout = 120
	Set dbs = Nothing
End Sub
barrabas
Дата: 23.01.2006 10:02:14
Не работает пример этот, не сохраняет он значение, я его пробовал. Вобщем нашел где в реестре менять, в этом же хелпе написано, просто не обращал внимания, думал и программно можно.
4321
Дата: 23.01.2006 11:02:24
barrabas
Не работает пример этот, не сохраняет он значение, ...

блинн, рот почисти, что ли. что значит "не работает"? Читай:
автор
задается значение свойства QueryTimeout текущей базы данных:

а если надо для всех бд - то в реестре
Для того чтобы указать в рабочей области Microsoft Jet значение, отличное от значения по умолчанию, следует создать новую запись «ODBC» на пути реестра \HKEY_LOCAL_MACHINE\SOFTWARE\Jet\3.5\, создать параметр QueryTimeout и задать для него нужное значение.
2000 - Jet\4
barrabas
Дата: 23.01.2006 11:26:08
4321
[quot barrabas]Не работает пример этот, не сохраняет он значение, ...

блинн, рот почисти, что ли. что значит "не работает"? Читай:
автор
задается значение свойства QueryTimeout текущей базы данных:

Так не работает

Sub SetTimeout()
Dim dbs As Database
Set dbs = CurrentDb
dbs.QueryTimeout = 120
msgbox dbs.QueryTimeout
Set dbs = Nothing
End Sub
Выводит 120
Запускаешь запрос который спецом сделан для долгово выполнения, ставишь секундомер, все равно через 60 сек вылетает ошибка.
проверяем
Sub SetTimeout()
Dim dbs As Database
Set dbs = CurrentDb
msgbox dbs.QueryTimeout
Set dbs = Nothing
End Sub
А значение опят стоит 60.
Как сохранить значение?
barrabas
Дата: 23.01.2006 11:30:31
Просто проверь сам сделай две процедуры

Sub SetTimeout()
Dim dbs As Database
Set dbs = CurrentDb
dbs.QueryTimeout = 120
Set dbs = Nothing
End Sub

и

Sub GetTimeout()
Dim dbs As Database
Set dbs = CurrentDb
msgbox dbs.QueryTimeout
Set dbs = Nothing
End Sub
И запусти поочереди
Karfaqen
Дата: 23.01.2006 11:51:39
barrabas
dbs.QueryTimeout = 120
Set dbs = Nothing
Вы устанавливаете тут свойство для объектной переменной dbs, которую в следующей строке уничтожаете. Каким образом она может что-то сохранить? Все запросы выполняемые в dbs в промежутке между двумя этими строками, будут иметь QueryTimeout = 120. А таймаут CurrentDb при этом останется прежним.