powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пробблема при открытии ADO рекордсета
11 сообщений из 11, страница 1 из 1
Пробблема при открытии ADO рекордсета
    #32455576
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,
у меня такая проблема:
говорю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Set rsDocument = New ADODB.Recordset
    With rsDocument
        .CursorType = adOpenDynamic
        .CursorLocation = adUseServer
        .LockType = adLockBatchOptimistic
        .Source =  "{Call spDocumentS}" 
        .ActiveConnection = Cnn
        .Open
    End With
    rsDocument.MoveLast


Когда запускаю, выдает мне ошибку:
Rowset does not support fetching backward
в какой настройке ошибки или чего я не сделал?
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455606
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чтой-то незнаком с таким форматом:
Код: plaintext
1.
        .Source =  "{Call spDocumentS}" 
Где об этом можно почитать?
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455610
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При серверном курсоре нельзя использовать пакеное обновление. Используй клиентский или обновляй по однй записи.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;188857

Magnus
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455668
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, спасибо.
Нужно было тип курсора перевести на клиентский.
А это не означает, что все данные будут переданы в клиентское приложение. И не уменьшит ли это производительности приложения?

по поводу
Код: plaintext
.source =  "{call DocumentS}" 

это строка ТSQL, в которой я говорю выполнить ХП SQLServer
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455675
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это не означает, что все данные будут переданы в клиентское приложение. И не уменьшит ли это производительности приложения?

К сожалению именно это и означает.
Все данные будут пересланы клиенту. Падение производительности незаметно на небольших обьемах данных. Хотя, это все завист также от сети, количества коннектов, мощности железа и еще тысячи факторов.

В принципе, если тебе просто нужно выполнить хранимку(а судя по твоим опасениям это так и есть), то рекордсет не нужен, ее можно запускать и через connection.Execute.



Magnus
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455684
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранимая процедура как раз и возвращает Рекордсет, дело в том, что когда решил писать это приложение на VB, то зная его особенность в "неоптимальной" работе с данными, решил, что все операции будут делаться сервером. Это продиктовано тем, что база будет расти как минимум на 3000 записей в день в основной таблице, так что вопрос производительности является одним ключевых.
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455688
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно на крайняк можно сделать, чтобы она периодически отправляла в архив записи, но так хотелось поменьше гемороя.
Кстати, есть статьи про Железо, колличество подключений а так же еще тысячи факторов и производительность?
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455710
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ты хочешь выбрать даные но чтобы они при этом остались на сервере и можно было перемещаться по ним?
Тогда можно открыть курсор руками. В хранимке. Поработать с ним а потом закрыть.

Код: plaintext
Open MyCursor cursor for.....

см. BOL

При нормальной не загруженной сетке, передача 20000 записей будет не особо заметна(пару секунд задержки, в зависимости от.....).

На счет статей, не знаю, искать надо.

Magnus
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455734
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно ли получить управление этип ХП-шным курсором через VB?
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455770
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно можно. Курсор собственно не ограничен процедурой. В ней ты его открыаваешь и он остается висеть на серваке(мы кстати говорим о сиквеле?).
Пока не сделаешь ему Deallocate.

И естественно фетчить из него записи ты можешь в любое время, просто выпоняя SQl запросы.

Код: plaintext
Fetch next from MyCursor...


Почитай в BOL о работе с курсорами. Но помни одну вещь - курсоры это одна из самых медленных вещей которые существуют в сиквел сервере. Так что тут как говорится, будем посмотреть.
Тоже зависит от многих вещей, например от типа курсора. Fast Forward довольно быстрый но также поддерживает перемещение только вперед.
Тебе же, как я понял нужен более свободный а значит более медленный курсор.
Также помни что, курсор висящий в памяти сиквела, нехило жрет ресурсы.

Magnus
...
Рейтинг: 0 / 0
Пробблема при открытии ADO рекордсета
    #32455823
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пробблема при открытии ADO рекордсета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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