powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Свойство Filter ADO-рекордсета
4 сообщений из 4, страница 1 из 1
Свойство Filter ADO-рекордсета
    #32170001
vladn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть рекордсет (VB и ADO 2.6), установлено свойство Filter, например по полю "name". Изменяю значение это поля -> текст не соответствует больше условию фильтра -> перехожу на следующую запись ->запись из рекордсета исчезает.

Вопрос: есть ли в ADO такие свойства, чтобы рекордсет автоматически не "обновлялся"? Или хотя бы как отследить момент такого обновления?
Тип курсора - adLockBatchOptimistic.
...
Рейтинг: 0 / 0
Свойство Filter ADO-рекордсета
    #32170041
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем видеть в наборе запись, не удовлетворяющую условию?
...
Рейтинг: 0 / 0
Свойство Filter ADO-рекордсета
    #32170092
vladn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что элемент управления типа грид вытаскивает данные из рекодсета по AbsolutePosition (давайте не будем обсуждать недостатки этого метода). При извлечении данных из базы и различных операциях с рекордсетом грид соответственно переформатируется и все нормально.
А вот данная ситуация не предусмотренна!

Тоже самое при установке св-ва Sort. Рекордсет автоматически пересортировывается, и AbsolutePosition совсем уже не те.
...
Рейтинг: 0 / 0
Свойство Filter ADO-рекордсета
    #32171802
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
'1. Создай указатель на Event-handled рекордсет:
Private WithEvents rsOrg As ADODB.Recordset    

'2.  "Начини"  нужным кодом следующий обработчик событий:
Private Sub rsOrg_MoveComplete( _
    ByVal adReason As ADODB.EventReasonEnum, _
    ByVal pError As ADODB.Error, _
    adStatus As ADODB.EventStatusEnum, _
    ByVal pRecordset As ADODB.Recordset)
    
    If adReason <> adRsnRequery Then Exit Sub       
'Изо всех резонов единственный - adRsnRequery - выскакивает при фильтрации.
'Его и используем для возбуждения сигнала  "Рекордсет отфильтрован" :

Dim s As ...
With pRecordset
    If .Filter = adFilterNone Then
        s = ...
    Else
        s = .Filter
    End If
    RaiseEvent RsFiltered(.RecordCount, s)  'Принимай, Макарыч!
End With

End Sub
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Свойство Filter ADO-рекордсета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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