Помогите... Выполнение запроса к базе в фоновом режиме с помощью 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.
Может кто-нибудь объянит в чем тут дело?? Или как решить эту проблему, желательно с примером?

Решение задачи: «Помогите... Выполнение запроса к базе в фоновом режиме с помощью 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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5