Помогите... Выполнение запроса к базе в фоновом режиме с помощью CreateThread - VB
Формулировка задачи:
Не могу понять... Столкнулся с задачей, во время выполнения вызова хранимки на MS SQL 2000 через ADODB.Command программа блокируется на время выполнения. Для решения этой проблемы решил воспользоваться потоками. Те запускать обращения к базе в отдельном потоке.
Во первых, прочел статьи по поводу многопотоковости. Например, http://www.vbnet.ru/article/showarticle.asp?id=20
Скачал известный пример Philipp Weidmann с использованием класса clsThreading.cls.
Но во-первых проект приходится компилировать в P-code (посмотрел в примере Philipp Weidmann) иначе ругается msvbvm60.dll -те виртуальная машина. А компилировать в P-code не хочется.
Так вот случае,если в нити происходит вызов хранимки через ADODB.Command все вылетает с ошибкой,даже если откомпилировать в P-code. Я не понимаю,потому что явно чего то не знаю.Почитав по форумав, понял что с потоками вообще очень даже не просто в VB.
Может кто-нибудь объянит в чем тут дело?? Или как решить эту проблему, желательно с примером?
Во первых, прочел статьи по поводу многопотоковости. Например, http://www.vbnet.ru/article/showarticle.asp?id=20
Скачал известный пример Philipp Weidmann с использованием класса clsThreading.cls.
Но во-первых проект приходится компилировать в P-code (посмотрел в примере Philipp Weidmann) иначе ругается msvbvm60.dll -те виртуальная машина. А компилировать в P-code не хочется.
Так вот случае,если в нити происходит вызов хранимки через ADODB.Command все вылетает с ошибкой,даже если откомпилировать в P-code. Я не понимаю,потому что явно чего то не знаю.Почитав по форумав, понял что с потоками вообще очень даже не просто в VB.
Может кто-нибудь объянит в чем тут дело?? Или как решить эту проблему, желательно с примером?
Решение задачи: «Помогите... Выполнение запроса к базе в фоновом режиме с помощью CreateThread»
textual
Листинг программы
<font color="blue">With</font> cmdrs <br> .CommandText = Me.CommandText <br> .CommandType = Me.CommandType <br> .CommandTimeout = comtimeout <br> <font color="green">' <br> Set .ActiveConnection = con <br> '</font>Запускается процесс асинхронного открытия рекордсета <br> <font color="blue">Set</font> RSrezult = .<font color="blue">Execute</font>(, , adCmdStoredProc + adAsyncFetch + adAsyncFetchNonBlocking _ <br> + adAsyncExecute) <br> <font color="blue">End</font> <font color="blue">With</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д