powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
6 сообщений из 6, страница 1 из 1
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542279
Jeneva2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый.
При выполнении макроса VBA через раз выскакивает ошибка когда доходит до выполнения запроса SQL:

Run-time error -2147217871 (80040e31)
[Microsoft] [ODBC SQL Server Driver] Истекло время ожидания запроса

То есть может заработать с первого раза, а может с пятого, потом снова не работает и т. д., закономерности нет.
Может кто знает, в чём может быть проблема?
Код приведён ниже.
Спасибо.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Public Sub Dop()

    Dim Server_Name As String
    Dim Database_Name As String
    Dim User_ID As String
    Dim Password As String
    Dim SQLStr As String
        
    Server_Name = "s-kv-cent-s01" ' Enter your server name here
    Database_Name = "AUTO" ' Enter your  database name here
    User_ID = "" ' enter your user ID here
    Password = "" ' Enter your password here
    texSQL = "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
    ";Uid=" & User_ID & ";Pwd=" & Password & ";"
       
    Dim RS As Object
    Set RS = CreateObject("ADODB.Recordset")
    
    ttt = "SELECT fil.Region, fil.City, fil.File_N, fil.Filial, fil.Filial_ID, cat.Category, nap.Naprav, own.Owner, doptip.Tip, obor.Polka1 +' '+ obor.Polka2 as Name, obor.Polka1, obor.Polka2, obor.Width, obor.Depth, fil.Format "
    ttt = ttt + "FROM Auto_Oborudovan as obor INNER JOIN Act_Vers as actual ON actual.Ent_Name = CAST (obor.Filial_ID AS varchar) +'_'+ obor.Ent_Name AND actual.Data_Time = obor.Data_Time INNER JOIN Auto_Filial as fil ON obor.Filial_ID = fil.Filial_ID LEFT JOIN Auto_Mesta_ID_Tip as doptip ON obor.Vid_Obor = doptip.Tip_Acad "
    ttt = ttt + "LEFT JOIN Auto_Dop as dop ON obor.Width = dop.Width_PTZ AND obor.Depth = dop.Depth_PTZ AND obor.Polka1 +' '+ obor.Polka2 = dop.Name AND doptip.ID_Tip = dop.ID_Tip left JOIN TID_Category as cat ON dop.ID_Category = cat.ID_Category left JOIN Type_ID_Naprav as nap ON cat.ID_Naprav = nap.ID_Naprav left JOIN Type_ID_Owner as own ON dop.ID_Owner = own.ID_Owner "
    ttt = ttt + "WHERE obor.Comment = 'Dop' AND fil.filial LIKE '&#209;%' AND  obor.Polka1 +' '+ obor.Polka2 <> ' ' ORDER BY fil.Filial_ID, obor.Polka1 +' '+ obor.Polka2"
    
   Application.StatusBar = "Подключение к базе данных"
    
   RS.Open ttt, texSQL, , , adCmdText
       
    im wBook As Excel.Workbook
    Set wBook = Workbooks.Add 
''''''''''''''''''''''''''''''''''''''''''


Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542306
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeneva2000Может кто знает, в чём может быть проблема?Проблема вроде указана в ошибке, разве нет?
Jeneva2000Истекло время ожидания запроса
...
Рейтинг: 0 / 0
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542311
Jeneva2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProJeneva2000Может кто знает, в чём может быть проблема?Проблема вроде указана в ошибке, разве нет?
Jeneva2000Истекло время ожидания запроса

Хорошо, как тогда изменить время ожидания запроса? Или почему иногда его хватает, а иногда нет?
...
Рейтинг: 0 / 0
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542313
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля, по которым идет отбор и объединение индексированы?
Проверять выражение (obor.Polka1 +' '+ obor.Polka2 <> ' ') плохая идея - лучше проверять по отдельности каждое поле.
Но с учетом использования Like и объединения по выражению, индексы могут и не помочь, если большое количество записей
...
Рейтинг: 0 / 0
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542315
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeneva2000Хорошо, как тогда изменить время ожидания запроса? Или почему иногда его хватает, а иногда нет?Раз иногда хватает, а иногда нет, значит время около таймаута. Можно, конечно, увеличить таймаут, но это плохой выход, лучше оптимизировать сам запрос
...
Рейтинг: 0 / 0
Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
    #39542323
Jeneva2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Хорошо, спасибо, подумаю на оптимизацией SQL запроса
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка ODBC SQL Server Driver Истекло время ожидания запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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