powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как предотвратить зависание?
11 сообщений из 11, страница 1 из 1
Как предотвратить зависание?
    #32876365
На открытие формы в adp-проекте запускается хранимая процедура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim myCommand As ADODB.Command
Set myCommand = New ADODB.Command
Set myCommand.ActiveConnection = CurrentProject.Connection
    myCommand.CommandTimeout =  0 
    myCommand.CommandType = adCmdStoredProc
    myCommand.CommandText = "Temp_Creater"
    myCommand.Parameters.Append myCommand.CreateParameter("@date_from", adChar, adParamInput,  10 , "")
    myCommand.Parameters.Append myCommand.CreateParameter("@date_to", adChar, adParamInput,  10 , "")
    myCommand.Parameters.Append myCommand.CreateParameter("@res", adInteger, adParamOutput,  9 )
    myCommand.Execute
Однако процедура выполняется очень долго и приложение визуально как бы подвисает (не перетаскиваются окошки, в диспетчере задач статус приложения "не отвечает"...). Подскажите пожалуйста, есть ли возможность предварительно указать приложению, что не нужно ожидать окончания работы хранимой на сервере?
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876419
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mdb можно было оживлять посредством DoEvents,
а хранимую процедуру вероятно можно запустить в асинхронном режиме(сам не пробовал)
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876421
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такая возможность. см опцию adAsyncExecute в command.execute
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876496
пробовал и так:
Код: plaintext
myCommand.Execute adAsyncExecute
только следующая команда (например, MsgBox ("ок"), все равно выполняется только после окончания работы хранимой.
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876565
V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V
Гость
похоже, Ваш код гарантированно обращается к серверу для получения списка параметров
переставьте
Set myCommand.ActiveConnection = CurrentProject.Connection
непосредственно перед
myCommand.Execute.

кроме того,
входные параметры у Вас заданы в виде пустых строк - это так и должно быть?
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876738
Попробовал - не помогает, а пустые строки - это нормально, это тестовый вариант и реально в хранимой ничего полезного пока не происходит...
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876771
V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V
Гость
какой версии адп
и в каком контексте происходит вызов
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876810
2000, вызов я поставил на таймер: первый раз запускается хранимая, последующие разы меняется цвет надписи "ждите..." до тех пор пока переменная @res = 0. По крайней мере, задумка такая была...
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32876930
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adAsyncExecute - третий параметр Command , а не первый
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32877010
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот так нельзя! автордо тех пор пока переменная @res = 0
проверать нужно cmd.state <> adStateExecuting
...
Рейтинг: 0 / 0
Как предотвратить зависание?
    #32877098
Спасибо, заработало.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как предотвратить зависание?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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