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

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

Тоже самое при установке св-ва Sort. Рекордсет автоматически пересортировывается, и AbsolutePosition совсем уже не те.
...
Рейтинг: 0 / 0
29.05.2003, 13:30
    #32171802
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свойство Filter ADO-рекордсета
Код: 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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Свойство Filter ADO-рекордсета / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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