powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB обработка ошибок соединения
18 сообщений из 18, страница 1 из 1
ADODB обработка ошибок соединения
    #36689091
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите пожалуйста, если кто делал. Вот кусок кода, как я сделал. Смысл в том, что если пропало соединение, он заходит в ADcon.Open StrCon и висит там минут 5. почему то выставление Timeout не помогает.

Dim StrCon As String
StrCon = "DSN=WORK"
Dim ADcon As New ADODB.Connection
Dim ADrec As New ADODB.Recordset
Dim SQLstr As String
On Error GoTo sf
SQLstr = "select dn from data order by dn"
Set ADcon = New ADODB.Connection
ADcon.ConnectionTimeout = 5

ADcon.Open StrCon
Set ADrec = New ADODB.Recordset
ADrec.CursorLocation = adUseClient
ADrec.Open SQLstr, ADcon
Exit Sub

sf:
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689094
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл написать, после 5ти минут он все-таки заходит в sf из-за ошибки. как бы мне время попытки соединения уменьшить?
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689173
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADcon.ConnectionTimeout не влияет на время установления соединения - влияет только на таймаут выполнения запросов.

Данную паузу выдает ОС в процессе установления TCP -соединения с недоступным сервером и ADO на это повлиять не может - это надо ковырять куда-то в сторону TCP/IP.

Грубо говоря, если у вас шареный файлсервер недоступен - при попытке зайти на него вы словите такую же паузу, вне зависимости от того, какой программой заходите.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689471
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProADcon.ConnectionTimeout не влияет на время установления соединения - влияет только на таймаут выполнения запросов.C хмурым утром :)
Как раз таки наоборот, влияет именно на время установления соединения. На время выполнения запроса — Command Timeout, с которой и следует поиграться автору.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689532
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyShocker.ProADcon.ConnectionTimeout не влияет на время установления соединения - влияет только на таймаут выполнения запросов.C хмурым утром :)
Как раз таки наоборот, влияет именно на время установления соединения. На время выполнения запроса — Command Timeout, с которой и следует поиграться автору.
Ой, да, действительно хмурое, не прав.
Но автору-то как раз не нужен CommandTimeout - у него проблема с установкой соединения...
в хелпе есть интересная фраза:
Make sure the provider to which you are writing code supports the ConnectionTimeout functionality.

может просто пингануть сервер перед тем, как подключаться?
Или запускать его в отдельном потоке и рушить вручную, сделав собственный таймаут...
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689578
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал невнимательно, конечно CommandTimeout нужно.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689602
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПрочитал невнимательно, конечно CommandTimeout нужно.

авторзаходит в ADcon.Open StrCon и висит там минут 5

Почему? у него СОЕДИНЕНИЕ не устанавливается, а не КОМАНДА не выполняется
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689766
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CommandTimeout тоже результата не дает, опробовано. может есть еще какой то сапособ перед выполнением проверить доступность данного узла?
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36689911
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант для начала пингуйте узел
Если пинг есть, смело устанавливайте соединение. А если у меня база недоступна (если вдруг лежит БД), в течении 6-9 секунд вылетает ошибка, которую я и обрабатываю.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36690075
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAntonariyПрочитал невнимательно, конечно CommandTimeout нужно.

авторзаходит в ADcon.Open StrCon и висит там минут 5

Почему? у него СОЕДИНЕНИЕ не устанавливается, а не КОМАНДА не выполняетсяА теперь скописпастил невнимательно))
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36692126
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kiv-1980,
Как вариант для начала пингуйте узел* - с таким не сталкивался, просто сам код не отрабатывает, в cmd пинга нет, а используя этот код есть. даже есть пинг на несуществующие айпишники
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36692184
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реакция только на IP с заведомо неправильным значением, скажем 1924.168.7.2
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36693569
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну покажите строку соединения, если ИП пингуется нормально, вероятней всего что-то с аутентификацией на самом сервере.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36693574
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kiv-1980Ну покажите строку соединения, если ИП пингуется нормально, вероятней всего что-то с аутентификацией на самом сервере.
Я так понял автора, что у него код для пинга неправильно работает. То есть узел недоступен, а код показывает, что якобы доступен
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36693985
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ так понял автора, что у него код для пинга неправильно работает. То есть узел недоступен, а код показывает, что якобы доступен
Указанный код рабочий, сам его использую уже не один год. Автору нужно проверить с командной строки ping узел доступность узла, возможно на узле фаер, либо брандмаузер, который и блочит запросы.
Без полного и внятного описания проблемы, что-то посоветовать невозможно.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36694198
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ICMP-пакеты могут быть заблокированы в сети
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36698097
kliff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я как раз выше писал про то, что в cmd(командная строка) пинга нет, а код дает, что есть. Просто думал как то полегче можно через тот же ADODB. пока не нашел. Надо было быстро сделать, поэтому пока пользуюсь классом, который робит через АПИ. но какойто другой путь явно должон быть.
...
Рейтинг: 0 / 0
ADODB обработка ошибок соединения
    #36698116
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: kliff
> но какойто другой путь явно должон быть.

Другой путь - трясти админа, что-бы сетку настроил, или внятно объяснил из-за чего происходят проблемы и как их решать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
objPing2 = Getobject("winmgmts:")
objPing = objPing2.ExecQuery("select * from Win32_PingStatus where address = """ & sAddress & """")
For Each objStatus In objPing
 If Isnull(objStatus.StatusCode) Or objStatus.StatusCode<> 0  Then
  return False
 End If
Next objStatus
Return True


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB обработка ошибок соединения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]