powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO: Fetch u Cancel
20 сообщений из 20, страница 1 из 1
ADO: Fetch u Cancel
    #32360634
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто сталкивался?

рекордсет.Open "",Cn,adStatic,adLockReadOnly,adCmdText + adAsyncFetchNonBlocking

Далее:
1 вариант: Если я его Close то всё ок
2 вариант: Если я его Cancel, то Close происходит приблизительно через
промежуток времени равный времени докачки оставшейся части
рекордсета. Интересно то, что даже и сам Акцесс открывает
форму в режиме конструктора через этот же промежуток времени.

WinXP + sp1a; OfficeXP + sp1 + sp2
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360657
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно проблема в том, что в справке ничего не сказно о adAsyncFetchNonBlocking
Код: plaintext
1.
Use the Cancel method to terminate execution of an asynchronous method call (that is,
a method invoked with the adAsyncConnect, adAsyncExecute, or adAsyncFetch option).
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360675
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно, вообще-то я adAsyncFetchNonBlocking подставил по привычке. Просто нужно было получить рекордсет в оперативку и читая его поля заполнять надписи на форме. Может и adAsyncFetch подойдет? сейчас уже не помню. Не сочти за труд, Виктор, ответь пожалуйста: с adAsyncFetch читать поля смогу после FetchProgress или только после FetchComplete?
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360684
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>с adAsyncFetch читать поля смогу после FetchProgress или только после FetchComplete?

FetchComplete - есно ты можешь читать, а вот с FetchProgress идет 4-ый параметер pRecordset (A Recordset object that is the object for which the records are being retrieved.) Его и юзай

==
И чё я справку цитирую? :)
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360701
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И чё я справку цитирую? :) > :)
Просто я не могу так как вы: все в голове держать. Мне чтоб вспомнить нужно заново Help лопатить.

Я имел ввиду, что если я открою рекордсет с опциями: adCmdText+adAsyncFetch, то первую запись я смогу прочитать после первого события FetchProgress или только после FetchComplete.

Ладно щас эксперемент поставлю и всё будет ясно. Но баг согласись, интересный.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360709
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сможешь прочесть только после первого события FetchProgress, только тебе никто немешает настроить Maxrecords на 1 запись. Вот и будешь читать по 1 записи
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360713
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу, не MaxProgress, а Progress
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360724
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Погоди-ка, погоди-ка...

С adAsyncFetch все то же самое, похоже пока все не докачал не смог закрыться. И получаю все как прежде.

Но: Maxrecords - это на форме?
На форму я ничего не вешаю. А если в рекордсете, то это же = TOP 1?
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360738
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По моему это в .Properties("") настраивается, что-то типа Background Fetch Size... не помню. С этим понятно. Это пройденный этап, вот что за докачка такая образовалась??? Как бы её грохнуть, хоть сетевой шнур выдирай :)
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360798
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>вот что за докачка такая образовалась??? Как бы её грохнуть, хоть сетевой шнур выдирай :)

Не знаю.
А события какие-либо при Cancel возникают?
По сетке действительно данные тянуться?
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360828
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные действительно тянутся. Смотрел диспетчером задач Windows вкладку "Сеть". В спокойном состоянии 0,02%-0,05%. До и после Cancel одинаково 17%-35%.

Сразу после события Cancel ничего (т.е. больше не возникает ни FetchComplete ни FetchProgress), а когда (по-моему) все закачалось идут 2 события: FetchComplete и FetchProgress. После них RecordCount указывает количество при событии Cancel, а не все закаченное.

Когда возникло событие Cancel, все нормально: могу перейти в окно редактора ВБ или БД, но если после этого обратился к рекордсету, то на экран вылетют часики и блокируются все окна текущей БД.

Страшное дело если придется лезть в Properties OLE DB...
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360832
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, да, ConnectionString такой:
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=<...>;Data Source=<...>

Ну и там соответственно юзер и пасворд.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360854
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ADO 2.7
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360885
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не достаточно ли в запросе просто применить заведомо ложное условие для парсинга. Что-то типа

select ... from ... where 1=0
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32360924
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, что событие FetchComplete не возникает

If adStatus is adStatusErrorsOccurred, then you can check pError to determine
what error has occurred. This can happen if your code calls the Cancel method
before the query is done executing, for example.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32361223
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага

tpg: а зачем это, можно поподробней?
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32361558
Shev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тоже самое происходит только в связке ADO+MSSQL2000.\r
(/topic/61436). \r
Pkarklin подсказал ссылку на документ с сайта Микрософта, где проблема решается установкой sp3 на MSSQL, но попробовать мне еще не удалось.\r
\r
У меня возникла мысль, которую я выражал в том посте - может ADO остановливает запрос только на клиенте, а серверу никакой команды не дает.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32361561
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
FIX: OLE DB Provider for SQL Server Does Not Cancel a Batch Statement When You Call the Cancel() Method
 325338 

SYMPTOMS
When you call the Cancel method on an ADO Connection or Recordset object, 
Microsoft OLE DB Provider for SQL Server (SQLOLEDB) does not cancel a query 
that is asynchronously executed and that involves a batch statement. Instead, 
Microsoft OLE DB Provider for SQL Server calls the SQLMoreResults method to 
fetch the remaining results. 

CAUSE
This problem occurs because of a code problem in which OLE DB Provider for SQL 
Server calls SQLMoreResults. 

RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 
 2000 
If you are using an earlier version of MDAC, you must upgrade your MDAC version 
to  2 . 7  before you apply this hotfix.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32362442
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже это.

Спасибо за помощь.
...
Рейтинг: 0 / 0
ADO: Fetch u Cancel
    #32362649
DefaultUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно.

Я пробовал на SQL 6.5.
При проверке на SQL 2000 с sp3a никаких проблем.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO: Fetch u Cancel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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