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

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

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

WinXP + sp1a; OfficeXP + sp1 + sp2
...
Рейтинг: 0 / 0
23.12.2003, 12:39
    #32360657
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
Возможно проблема в том, что в справке ничего не сказно о 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
23.12.2003, 12:44
    #32360675
DefaultUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
Возможно, вообще-то я adAsyncFetchNonBlocking подставил по привычке. Просто нужно было получить рекордсет в оперативку и читая его поля заполнять надписи на форме. Может и adAsyncFetch подойдет? сейчас уже не помню. Не сочти за труд, Виктор, ответь пожалуйста: с adAsyncFetch читать поля смогу после FetchProgress или только после FetchComplete?
...
Рейтинг: 0 / 0
23.12.2003, 12:48
    #32360684
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
>с adAsyncFetch читать поля смогу после FetchProgress или только после FetchComplete?

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

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

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

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

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

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

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

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

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

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

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

select ... from ... where 1=0
...
Рейтинг: 0 / 0
23.12.2003, 14:42
    #32360924
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
странно, что событие 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
23.12.2003, 17:14
    #32361223
DefaultUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
ага

tpg: а зачем это, можно поподробней?
...
Рейтинг: 0 / 0
24.12.2003, 08:36
    #32361558
Shev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
У меня тоже самое происходит только в связке ADO+MSSQL2000.\r
(/topic/61436). \r
Pkarklin подсказал ссылку на документ с сайта Микрософта, где проблема решается установкой sp3 на MSSQL, но попробовать мне еще не удалось.\r
\r
У меня возникла мысль, которую я выражал в том посте - может ADO остановливает запрос только на клиенте, а серверу никакой команды не дает.
...
Рейтинг: 0 / 0
24.12.2003, 08:55
    #32361561
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
Это?
Код: 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
24.12.2003, 17:53
    #32362442
DefaultUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO: Fetch u Cancel
Похоже это.

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

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


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