progress bar & SELECT

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

progress bar & SELECT

Сообщение shady » 06.02.2006 (Пн) 9:31

здравствуйте.
Кто-нибудь пробывал SQL запрос SELECT подвязать к прогресс бару? чтобы прогресс бар показывал сам процесс селекта.
Понятно, что прогрессбару нужен max, и тут без .recordcount можно обойтись?

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.02.2006 (Пн) 11:15

по-моему сама процедура выборки занимает гараздо меньше времени, чем работа с самим рекордсетом.
поэтому можно поступить так: выставляешь max у bar'а в 100, и юзаешь .PercentPosition

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 06.02.2006 (Пн) 11:20

у стандартного bar'a нет .PercentPosition

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.02.2006 (Пн) 11:21

зато у рекордсета есть :D

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 06.02.2006 (Пн) 11:27

и у рекордсета нет :).
ну а если серьезно, то что делать-то?

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.02.2006 (Пн) 11:30

как нет? конечно есть!

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 06.02.2006 (Пн) 11:36

да нет такого у рекордсета, и у прогресс бара нету с чем-то спутали наверное

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.02.2006 (Пн) 11:48

ага, если у тебя рекорсет DAO - есть, иначе - нет

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 06.02.2006 (Пн) 12:02

рекордсет АДО.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.02.2006 (Пн) 12:10

делается ассинхронный запрос и ловится событие:

Код: Выделить всё
Public WithEvents rsEvents As ADODB.Recordset
Public bComplete As Boolean

Private Sub rsEvents_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    Me.lblRecordCount.Caption = rsEvents.RecordCount
End Sub

Private Sub rsEvents_FieldChangeComplete(ByVal cFields As Long, ByVal Fields As Variant, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    bComplete = True
End Sub


sub RefreshRS()
Dim cn As ADODB.Connection

    If Not bComplete And Not Me.rsEvents Is Nothing Then
        Me.rsEvents.Cancel
    Else
        bComplete = False
    End If


  Set cn = New ADODB.Connection
  cn.CommandTimeout = 0
  cn.ConnectionTimeout = 30
  cn.CursorLocation = adUseClient
  cn.Open modADO.GetConnectionString
 
  Set rsEvents = New ADODB.Recordset
  rsEvents.CursorLocation = adUseClient
  rsEvents.PageSize = 100
  rsEvents.CacheSize = 1000
  Set rsEvents.ActiveConnection = cn
  rsEvents.Open SQL, , adOpenStatic, adLockReadOnly, adAsyncFetchNonBlocking
 
 
  Me.lblRecordCount.Caption = rsEvents.RecordCount
End Sub



ну а прикрутить прогресс-бар дело техники :lol:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 124

    TopList